java中Collection单列集合

Collection单列集合
    
    一次只能添加一个数据

    顶层接口        Collection
    第二层接口是    List和Set集合

    List的实现类:    ArrayList,LinkedList,Vector(过时)
    Set的实现类:    HashSet,TreeSet

    HashSet的子类:    LinkedHashSet


    常用方法:    boolean add(E e)        添加元素
            void clear()            清空所有元素
            boolean remove(E e)        把给定对象在当前集合中删除
            boolean contains(Object o)    判断当前集合中是否包含给定对象
                如果是引用数据类型,那要重写equals和hash方法
            boolean isEmpty()        判断当前集合是否为空
            int size()            返回当前集合中元素的个数

    


    Set系列集合:        无序,不重复,无索引

            无序:    存和取得顺序可能不同
            不重复:    集合中不同元素,值不能相同
            无索引:    不能用fori遍历


    Collection集合遍历方式
        
    迭代器遍历
        Iterator<E> iterator()        获取一个迭代器对象
        boolean hasNext()        判断当前指向的位置是否有元素
        E next()            获取当前指向的元素并移动指针
        remove()            迭代器删除,将指针返回一位

        Collection<Integer> list=new ArrayList<>();
            Iterator<Integer> it=list.iterator();
                while (it.hasNext()){//判断下一个存不存在
                    Integer next = it.next();
                    System.out.println(next);
            }
        
        细节:    如果超出集合范围还调用next方法,会报错NoSuchElementException
            迭代器遍历完毕,指针不会复位
            循环只能用一次next方法
            迭代器遍历时,不能用集合的方法增加或删除
                不然会报错:ConcurrentModificationException并发修改异常

        
            迭代器遍历是不依赖索引的
        

    增强for遍历    
        底层就是迭代器,为简化迭代器书写而出现
        jdk5后出现的
        所有单列集合和数字才能用它

        for (Integer s : list) {
                    sout(s);
            }

    Lambda表达式遍历
        list.forEach(s->sout(s));

            
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值