二、Collection 和 Iterator 接口

1.Collection接口

Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可用于Set集合,也可以用于操作List和Queue集合
 

1、boolean add(Object o):添加一个新元素

2、boolean addAll(Collection c):把集合c的元素添加到指定集合

3、void clear():清除集合里面的所有元素

4、boolean contains(Object o):集合里面是否包含指定元素

5、boolean containsAll(Collection c):集合是否包含c里的所有元素

6、boolean isEmpty():长度为0则返回true

7、Iterator iterator():返回一个 Iterator 对象,用于遍历

8、boolean remove(Object o) / boolean removeAll(Collection c):移除一个/移除所有

9、boolean retainAll(Collection c):从集合中删除集合c里不包含的元素(交集)

10、Object[] toArray:把集合转化成数组

:所有的Collection的实现类都重写了toString()


2.Iterator接口

Iterator则主要用于遍历Collection集合中的元素,Iterator对象称为迭代器。Iterator接口里定义了如下三个方法:

public class Test{

    public static void main(String[] args) {
        List list = new ArrayList();
        String book1 = "Java";
        String book2 = "Mysql";
        list.add(book1);
        list.add(book2);

        Iterator iterator = list.iterator();

        while (iterator.hasNext()){
            String book = (String) iterator.next();
            if(book.equals("Mysql")){
                iterator.remove();
            }
        }
        // 输出1
        System.out.println(list.size());
    }
}

Iterator仅用于遍历集合,Iterator本身并不提供盛装对象的能力。如果需要创建Iterator对象,则必须需要一个被迭代的集合。

当使用Iterator迭代访问Collection集合元素时,Collection集合里的元素不能被改变,只能通过Iterator的remove方法删除上一次next方法返回的集合元素才可以;否则将会引发java.util.ConcurrentModificationException异常。

:当使用Iterator对集合元素进行迭代时,Iterator并不是把集合元素本身传给了迭代变量,而是把集合元素的值传给了迭代变量,所以修改迭代变量的值对集合元素本身没有影响。


附加:使用foreach循环遍历集合

public class Test{

    public static void main(String[] args) {
        List list = new ArrayList();
        String book1 = "Java";
        String book2 = "Mysql";
        list.add(book1);
        list.add(book2);

        for (Object list1: list) {
            if(list.equals("Mysql")){
                list.remove(list1);
            }
        }
       
        // 输出1
        System.out.println(list.size());
    }
}

:foreach与Iterator接口访问集合元素类似的是,foreach循环中的迭代变量也不是集合元素本事,系统只是依次把集合元素的值赋值给迭代变量。

猜你喜欢

转载自blog.csdn.net/weixin_41575259/article/details/82192379
今日推荐