Bootstrap

Collection接口及遍历集合的方式Iterator接口、增强for循环的介绍和使用

Collection接口

  1. 概述:单列集合的顶级接口
  2. 格式:其中泛型决定了集合中能存储什么类型的数据,可以统一元素类型,泛型中只能写引用数据类型,如果不写,默认Object类型。等号前面的泛型必须写,等号后面的泛型可以不写,jvm会根据前面的泛型推导出后面的泛型是啥。
Collection<E> 对象名 = new 实现类对象<E>()

常用方法

  1. boolean add(E e) :将给定的元素添加到当前集合中(我们一般调add时,不用boolean接收,因为add一定会成功)
  2. boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)
public class MyCollection {
    public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<>();
        collection.add(1);
        collection.add(2);
        System.out.println(collection);
        System.out.println("======================================");
        //boolean addAll(Collection<? extends E> c) :将另一个集合元素添加到当前集合中 (集合合并)
        Collection<Integer> collection1 = new ArrayList<>();
        collection1.add(3);
        collection1.add(4);
        collection1.addAll(collection);
        System.out.println(collection1);
    }
}

在这里插入图片描述

  1. void clear():清除集合中所有的元素
  2. boolean isEmpty() : 判断当前集合中是否有元素->判断集合是否为空
public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<>();
        collection.add(1);
        collection.add(2);
        System.out.println(collection);
        collection.clear();
        System.out.println("==================================");
        System.out.println(collection);
        System.out.println("==================================");
        System.out.println(collection.isEmpty());
        }
}

在这里插入图片描述

  1. boolean remove(Object o):将指定的元素从集合中删除
  2. int size():返回集合中的元素个数。
  3. Object[] toArray(): 把集合中的元素,存储到数组中
public class MyCollection {
    public static void main(String[] args) {
        Collection<Integer> collection = new ArrayList<>();
        collection.add(1);
        collection.add(2);
        System.out.println(collection);
        boolean result = collection.contains(3);
        System.out.println("result = " + result);
        System.out.println(collection.size());
        Object[] arr = collection.toArray();
        System.out.println(Arrays.toString(arr));

在这里插入图片描述

Iterator接口

Iterator接口与Collection接口不同,主要用于迭代访问Collection中的元素,因此Iterator对象也被称为迭代器。通过Collection接口中的iterotor()返回的迭代器的实现对象。

迭代器常用方法

  1. boolean hasNext():判断集合中有没有下一个元素
  2. E next():获取下一个元素
public class MyIterator {
    public static void main(String[] args) {
        ArrayList<Integer> test = new ArrayList<>();
        test.add(3);
        Iterator<Integer> iterator = test.iterator();//获取迭代器对象
        while(iterator.hasNext()){
            Integer element = iterator.next();
            System.out.println(element);
        }
    }
}

在这里插入图片描述

增强for循环

增强for循环用来遍历数组或者集合。
格式:

for(元素类型 变量名:要遍历的集合名或者数组名){
      变量名就是代表的每一个元素
  }

IDEA快捷键:集合名或者数组名.for

遍历集合

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        for (String i : list) {
            System.out.println(i);
        }
    }
}

在这里插入图片描述

遍历数组

public class Test {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        for (int i : arr) {
            System.out.println(i);
        }
    }
}

在这里插入图片描述
注意:增强for循环遍历集合时,底层实现原理为迭代器,不能随意修改集合长度,否则会出现并发修改异常。增强for循环遍历数组时,底层实现原理为普通for循环。

;