Collection集合概述

1、是单例集合的顶层接口,他表示一组对象,这些对象也称为Collection的元素

2、JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。

集合类体系结构

创建Collection集合的对象

1、多态的方式

2、具体的实现类ArrayList

集合常用方法:

public class CollectionDemo01 {
    /*
    Collection接口中的常用方法:
        boolean add?(E e) : 添加元素。
        boolean contains?(Object o): 如果此集合包含指定的元素,则返回 true 。
        boolean isEmpty?() : 判断集合是否为空,为空则返回 true 。
        boolean remove?(Object o) : 根据元素本身删除集合中对应的内容。
        int size?(): 返回此集合中的元素个数。

        boolean removeIf(Object o): 根据条件删除集合中的元素
        void clear(): 清空集合中的元素
 */
    public static void main(String[] args) {
        // 1. 基于接口多态创建Collection集合容器
        Collection<String> coll = new ArrayList<>();
        //2. 往集合中添加3个人名
        coll.add("坂井泉水");
        coll.add("ZARD");
        coll.add("雅·修特拉");
        //2.1 获取一下集合的元素个数,做一个输出
        System.out.println(coll.size());
        //3. 判断当前集合容器中有没有ZARD, 有ZARD就删除
        if (coll.contains("ZARD")) {
            coll.remove("ZARD");
        }
        coll.removeIf(s -> s.equals("ZARD"));
        //3.1 获取一下集合的元素个数,做一个输出

        //4. 判断当前集合是否为空并打印
        System.out.println(coll.isEmpty());
        //5. boolean removeIf(Object o): 根据条件删除集合中的元素
        //需求: 如果集合中的元素包含"雅"字, 那就将该元素从集合中删除
        coll.removeIf(s -> s.contains("雅"));
        //6. 将集合清空
        coll.clear();
        //打印集合
        System.out.println(coll);
    }
}

Collection集合的遍历

迭代器

迭代器,专门用来遍历集合的方式

Iterator iterator(): 返回此集合中元素的迭代器,通过集合对象的iterator()方法得到。

Iterator常用的方法:

boolean hasNext():判断当前位置是否有元素可以被取出 。

E next():获取当前位置的元素,将迭代器对象移向下一个索引位置。

Colleciton集合的遍历

public class CollectionDemo02 {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> list = new ArrayList<>();

        //添加元素
        list.add("Z");
 
        list.add("A");
        list.add("R");
        list.add("D");

        //获得迭代器的对象
        //迭代器对象一旦被创建出来,默认指向集合的0索引处
        Iterator<String> it = list.iterator();

        //用while循环获取元素和判断
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }
}

迭代器中删除的方法
void remove(): 删除迭代器对象当前指向的元素。

public class CollectionDemo05 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("Z");
        list.add("A");
        list.add("R");
        list.add("D");
        list.add("C");

        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String s = iterator.next();
            if ("C".equals(s)) {
                //指向谁就删除谁
                iterator.remove();
            }
        }
        System.out.println(list);
    }
}

增强For循环

它是JDK5之后出现的,其内部原理是一个Iterator迭代器
实现Iterable接口的类才可以使用迭代器和增强for
简化数组和Collection集合的遍历

  • 格式:

for(集合/数组中元素的数剧类型 变量名 : 集合/数组名){

//已经将当前遍历到的元素封装到变量中了,直接使用变量即可}

注意点:

在增强for中修改第三方的值不会修改集合内容

public class MyCollectonDemo1 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        //1,数据类型一定是集合或者数组中元素的类型
        //2,str仅仅是一个变量名而已,在循环的过程中,依次表示集合或者数组中的每一个元素
        //3,list就是要遍历的集合或者数组
        for(String str : list){
            System.out.println(str);
        }
    }
}

发表回复

您的电子邮箱地址不会被公开。