java集合 Conllection List

目录

1.Collection接口

2.集合的继承结构

3.Collection方法

4.iterator()遍历集合

5.List接口

 6.集合迭代方式

7.ArrayList

8.LinkedList


1.Collection接口

在这里插入图片描述

 集合是用来存放对象的数据结构,而且长度可变,可以存放不同类型的对象,并且还提供了一组操作成批对象的方法,Collection接口层次结构中的跟接口,接口不能直接使用,但是该接口提供了添加元素/删除元素/管理元素的父接口公共方法
由于List接口与Set接口都继承了Collection接口,因此这些方法对于List集合和Set集合是通用的

2.集合的继承结构

Collection接口




List 接口【数据有下标,有序,可重复】




ArrayList子类




LinkedList子类




Set 接口【数据无下标,无序,不可重复】




HashSet子类




Map 接口【键值对的方式存数据】




HashMap子类

3.Collection方法

在这里插入图片描述

containAll()是否包含指定集合中所有元素
removeAll()删除集合中的其他集合元素
retainAll()取集合间的公共元素

4.iterator()遍历集合

1.获取集合的迭代器 c.iterator();
2.判断集合中是否有下一个可迭代元素 hasNext();
3.获取当前迭代到的元素  next();

Iterator<Integer> it=c.iterator();
while(it.hasNext()){
        Integer num=it.next();
        System.out.println(num)
}

5.List接口

1.元素都有下标
2.数据是有序的
3.允许存放重复的数据

在这里插入图片描述

 6.集合迭代方式

        //测试集合的迭代
        /**集合的迭代方式:
         * 1.for循环
         * 2.高效for循环
         * 3.iterator
         * 4.listIterator
         * */
        //方式一:因为List集合是有序的,元素有下标的,所以可以根据下标进行遍历
        //从哪开始:0  到哪结束:list.size()-1  如何变化++
        for(int i = 0;i<list.size();i++){
            //根据本轮循环遍历到的索引值获取对应的集合元素
            System.out.println(list.get(i));
        }
        System.out.println("************方式一*************");

        //方式二:因为普通for循环遍历效率低,语法复杂,所以使用高效for来遍历
        //格式for(本轮遍历到的元素类型 元素名 :要遍历的内容名){循环体}
        for( String s : list){
            System.out.println(s);
        }
        System.out.println("************方式二*************");

        //方式三:从父接口中继承过来的迭代器iterator
        //1.获取对应的迭代器对象
        Iterator<String> it = list.iterator();
        //2.通过刚刚获取到的迭代器循环迭代集合中的所有元素
        while(it.hasNext()){//判断是否仍有下一个元素可以迭代
            System.out.println(it.next());//打印当前获取到的元素
        }
        System.out.println("************方式三*************");
        /**方式四:listIterator属于List接口特有的迭代器
         * Iterator<E>--父接口--hasNext() next()
         * ListIterator<E>--子接口--除了父接口的功能以外
         * 还有自己的特有功能,比如逆序遍历,添加元素等等,但是不常用
         * public interface ListIterator<E>extends Iterator<E>
         * */
        ListIterator<String> it2 = list.listIterator();
        while(it2.hasNext()){
            System.out.println(it2.next());
        }
        System.out.println(list);
        System.out.println("listIterator的逆序遍历:");
        ListIterator<String> it3 = list.listIterator();
        while(it3.hasNext()){//判断是否有下一个元素可迭代
            System.out.println(it3.next());//打印当前迭代到的元素
            if(!it3.hasNext()){//直到迭代器没有下一个元素可迭代--到最后了
                System.out.println("开始逆序迭代:");
                while (it3.hasPrevious()){//判断是否有上一个元素可迭代
                    System.out.println(it3.previous());//打印获取到的上一个元素
                }
               break;//终止循环,不然会一直从头到尾,再从尾到头迭代
            }
        }

7.ArrayList

1.存在java.util包中
2.内部是用数组结构存放数据,封装数组的操作,每个对象都有下标
3.内部数组默认的初始容量是10,如果不够会以1.5倍的容量增长
4.查询快,增删效率会低

8.LinkedList

链表,两端效率高,底层是链表实现的

请添加图片描述

 在这里插入图片描述

 常用方法

void addFirst(E e) 添加首元素
void addLast(E e) 添加尾元素
E getFirst() 获取首元素
E getLast() 获取尾元素
E element() 获取首元素
E removeFirst() 删除首元素
E removeLast() 删除尾元素

boolean offer(E e) 添加尾元素
boolean offerFirst(E e) 添加首元素
boolean offerLast(E e) 添加尾元素
E peek() 获取首元素
E peekFirst() 获取首元素
E peekLast() 获取尾元素
E poll() 返回并移除头元素
E pollFirst() 返回并移除头元素
E pollLast() 返回并移除尾元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值