Collection接口复习及相关知识

1、Colletion的方法

  1. collection的contains、equals、remove,removeAll
    会调用obj对象的equals方法,进行比较,所以注意重写equals方法
    总结:collection中所有涉及比较的方法,都是用集合中元素的equals来实现的

  2. 添加元素:add
    删除元素:remove
    比较元素:equals
    交:retainAll
    并:addAll
    差:removeAll

  3. collection.toArray <=> Arrays.asList
    注意:Arrays.asList(new int[]{1,2,3,4,5,6}),如果传入的是一个基本类型的数组,会将这个数组识别为一个对象;

    List<int[]> list = Arrays.asList(new int[]{1,2,3,4,5,6});
    list.size = 1;

2、 迭代器Iterator

  1. 迭代器Iterator
    1)、迭代器的默认游标(用于指向元素,类似于指针)都在集合的第一个元素 之前
    2)、集合对象每次调用iterator方法会返回一个新的迭代器,所以有可能会造 成死循环:
public void aVoid() throws Exception {
            ArrayList<Integer> integers = new ArrayList<>();
           integers.add(1);
           integers.add(2);
           integers.add(3);
           integers.add(4);
           integers.add(5);
             //死循环
            while (integers.iterator().hasNext()){
                      System.out.println(integers.iterator().next());
                }
            //死循环
            while (integers.listIterator().hasNext()){
                     System.out.println(integers.listIterator().next());
               }
           }

          3)、remove删除当前 游标(指针所指的元素),所以如果游标在集合之前,
                 或连续两次调用remove就会报错
                  注意:这里的remove不是Collection中的remove

  1. 使用增强for循环来遍历

    1)、遍历的对象必须实现iteratable接口,因为增强for循环底部使用iterator迭代器

    2)、增强for循环,用迭代器将值中遍历对象中取出,赋给一个新对象。
    所以在增强for循环中修改遍历对象元素的值是无效的

public void aVoid() throws Exception {
        int[] integers = new int[]{1,2,3,4,5};
        for (Integer i:integers){
               i++;
        }
        for (int i = 0; i < integers.length; i++) {
               System.out.println(integers[i]);
        }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值