简述集合的概要

2022-08-15 11:36:40

概念

Java中的集合就是一种容器,可以容纳不同种类的数据,这些容纳是建立在未知的基础上。

优点

1.可以动态保存任意多个对象,使用比较方便。

2.提供一系列方便的操作对象的方法:add、remove、set、get等

3.使用集合添加,删除新元素的示意代码简洁。

集合框架图

在这里插入图片描述

Collection接口和常用方法

1.Collection实现子类可以存放多个元素,每个元素可以是Object

2.有些Collection的实现类,可以存放重复的元素,有些不可以

3.有些Collection的实现类,有些是有序的(list),有些不是有序的(set)

4.Collection接口没有直接的实现子类,是通过他的子接口Set和List来实现的。

Collection接口常用方法

1.add 添加单个元素 2.remove 删除指定元素 3.contains 查找元素是否存在

4.size 获取元素个数 5.isEmpty 判断是否为空 6.clear 清空 7.addAll 添加多个元素

8.containsAll 查找多个元素是否都存在 9.removeAll 删除多个元素

Collection迭代器遍历元素

1.Iterator对象称为迭代器,主要用于遍历Collection集合中的元素

2.所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了

iterator接口的对象,即可以返回一个迭代器

3.Iterator仅用于遍历集合,它本身并不存放对象

for循环增强

增强for循环,可以代替iterator迭代器

特点:增强for就是简化版的iterator,本质一样,只能用于遍历集合或数组

基本语法
for(元素类型 元素名:集合名或数组名){
	访问元素}
/**案例演示*/publicclassCard{publicstaticvoidmain(String[] args){/**
         *  1.准备牌
         *  2.洗牌
         *  3.发牌
         *  4.看牌*///1.//创建一个牌盒ArrayList<String>BoxCard=newArrayList<String>();//创建花色集合ArrayList<String> color=newArrayList<String>();//创建数字集合ArrayList<String> numbers=newArrayList<String>();//添加花色牌
        color.add("♠");
        color.add("♥");
        color.add("♦");
        color.add("♣");//创建数字牌for(int i=2; i<=10; i++){
            numbers.add(i+"");}
        numbers.add("J");
        numbers.add("Q");
        numbers.add("k");
        numbers.add("A");//把花色牌和数字牌添加到一个大牌盒for(String o:color){for(String n: numbers){String card= o+ n;BoxCard.add(card);}}BoxCard.add("BigKing");BoxCard.add("SmallKing");//2.Collections.shuffle(BoxCard);System.out.println(BoxCard);//3.发牌//创建三个用户ArrayList<String> player1=newArrayList<String>();ArrayList<String> player2=newArrayList<>();ArrayList<String> player3=newArrayList<>();//递牌ArrayList<String>GiveCards=newArrayList<>();for(int m=0; m<BoxCard.size(); m++){//获取牌面String cards=BoxCard.get(m);//发牌顺序余三张if(m>=51){GiveCards.add(cards);}else{if(m%3==0){
                    player1.add(cards);//获取第一个玩家牌数}elseif(m%3==1){
                    player2.add(cards);//获取第二个玩家牌数}else{
                    player3.add(cards);//获取第三个玩家牌数}}}//看牌System.out.println("第一个玩家"+player1);System.out.println("第二个玩家"+player2);System.out.println("第三个玩家"+player3);System.out.println("底牌"+GiveCards);}}

list接口和常用方法

1.list集合类中元素有序(及添加顺序和取出顺序一致)、可重复

2.list集合类中的每个元素都有其对应的顺序索引,及支持索引

3.list容器中的元素对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素

4.JDK API中list接口常用实现的类:ArrayList、LinkedList和Vector。

常用方法
1.add 添加单个元素2.remove  删除指定元素publicEget(int index)返回集合中指定位置publicEset(int index,E element)用指定元素替换集合中指定位置的元素,返回值的更新前的元素
publicclass olg{publicstaticvoidmain(String[] args){//创建集合对象List<String> list=newArrayList<String>();//尾部添加指定数据
        list.add("光之子");
        list.add("神印王座");
        list.add("酒神");
        list.add("诸神黄昏");System.out.println(list);//指定位置添加
        list.add(1,"全职高手");System.out.println(list);//删除指定元素System.out.println(list.remove(3));
        list.set(1,"斗罗大陆");System.out.println(list);for(int i=0; i< list.size(); i++){System.out.println(list.get(i));}//增强forfor(String s:list){System.out.println(s);}}}

ArrayList

java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能 为查询数据、遍历数据,所以 ArrayList 是最常用的集合。

LinkedList集合

java.util.LinkedList 集合数据存储的结构是链表结构。方便元素添加、删除的集合

常用方法
publicvoidaddFirst(E e):将指定元素插入此列表的开头。publicvoidaddLast(E e):将指定元素添加到此列表的结尾。publicEgetFirst():返回此列表的第一个元素。publicEgetLast():返回此列表的最后一个元素。publicEremoveFirst():移除并返回此列表的第一个元素。publicEremoveLast():移除并返回此列表的最后一个元素。publicEpop():从此列表所表示的堆栈处弹出一个元素。publicvoidpush(E e):将元素推入此列表所表示的堆栈。publicbooleanisEmpty() :如果列表不包含元素,则返回true
publicclassLinked{publicstaticvoidmain(String[] args){LinkedList<String> link=newLinkedList<String>();//添加第一个元素值
        link.addFirst("龙皓晨");
        link.addFirst("姬动");
        link.addFirst("叶音竹");
        link.addFirst("长弓威");System.out.println(link);//获取元素System.out.println(link.getFirst());//第一个值System.out.println(link.getLast());//最后一个值//删除元素System.out.println(link.removeFirst());System.out.println(link.removeLast());while(!link.isEmpty()){//判断集合是否为空System.out.println(link.pop());//弹出集合中的栈顶元素}System.out.println(link);}}

Map集合(键值对集合)

现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等, 这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map 接口。

HashMap:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重 复,需要重写键的hashCode()方法、equals()方法。

LinkedHashMap:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。 通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的 hashCode()方法、equals()方法。

常用方法
publicVput(K key,V value)`: 把指定的键与指定的值添加到Map集合中。publicVremove(Object key)`: 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值。`publicVget(Object key)` 根据指定的键,在Map集合中获取对应的值。 `booleancontainsKey(Object key) ` 判断集合中是否包含指定的键。publicSetkeySet()`: 获取Map集合中所有的键,存储到Set集合中。publicSet>entrySet()`: 获取到Map集合中所有的键值对对象的集合(Set集合)
publicclassHashMapdemo{publicstaticvoidmain(String[] args){//创建Map对象HashMap<String,String> map=newHashMap<String,String>();//添加元素到集合
        map.put("李世民","长孙皇后");
        map.put("1","朱元璋");System.out.println(map);//删除System.out.println(map.remove("1"));System.out.println(map);//查看李世民的皇后System.out.println(map.get("李世民"));}}//添加元素到集合
        map.put("李世民","长孙皇后");
        map.put("1","朱元璋");System.out.println(map);//删除System.out.println(map.remove("1"));System.out.println(map);//查看李世民的皇后System.out.println(map.get("李世民"));}}
  • 作者:凌北辰
  • 原文链接:https://blog.csdn.net/liustreh/article/details/117898421
    更新时间:2022-08-15 11:36:40