Collection集合

Collection集合

    • 1. 概述
    • 2. 方法
    • 3. 代码示例
    • 4. 输出结果
    • 5. 注意事项

其他集合类

具体信息请查看 API 帮助文档

1. 概述

在 Java 集合框架中,Collection 是一个接口,它代表了一组对象的集合。Collection 接口是所有集合类的根接口,定义了集合的基本操作和功能。以下是一些 Collection 接口的主要特点:

  1. 无序集合Collection 接口不保证元素的顺序,即元素的存储顺序可能与添加顺序不同。

  2. 不可重复元素Collection 接口不容许有重复的元素,当添加重复元素时,只会添加一个,并且返回 false

  3. 动态大小Collection 接口的实现类可以根据需要自动扩展或缩小大小。

Collection集合概述:

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

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

Collection 接口有多个继承接口,包括 ListSetQueue 等。这些子接口扩展了 Collection 接口,提供了更多特定类型集合的操作。例如,List 接口表示一个有序的集合,允许重复的元素;Set 接口表示一个无序且不允许重复元素的集合;Queue 接口表示一个先进先出的队列。

需要注意的是,Collection 接口本身不能直接实例化,但可以使用它的实现类来创建具体的集合对象。常用的 Collection 接口的实现类包括 ArrayListLinkedListHashSetTreeSet 等。

2. 方法

方法名 说明
boolean add(E e) 添加元素
boolean remove(Object o) 从集合中移除指定的元素
boolean removeIf(Object o) 根据条件进行移除
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中元素的个数

注意点】:

  • boolean add(E e) :添加元素

    • 如果要往List系列的集合中添加元素,那么该方法永远返回true,因为List系列的集合石允许元素重复的;

    • 如果要往Set系列的集合中添加元素,如果要添加的元素在集合中不存在,则添加成功返回true,如果要添加的元素在集合中存在,则添加失败返回false。因为Set系列的集合不允许重复。

  • boolean remove(Object o) :从集合中移除指定的元素

    • 因为Collection里面定义的是共性的方法,所以不能通过索引删除元素,而是通过元素的对象进行删除

    • 方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false

  • boolean contains(Object o) : 判断集合中是否存在指定的元素

    • 底层是依赖equals方法进行判断是否存在,因此如果想要用contains方法判断的是自定义对象,则需在Javabean类中重写equals方法

3. 代码示例

package text.text02;

import java.util.ArrayList;
import java.util.Collection;

/*
注意点:Collection是一个接口,因此我们不能直接创建它的对象,而是要创建它的实现类对象。
 */
public class text23B {
    public static void main(String[] args) {
        //创建集合对象
        Collection<String> coll = new ArrayList<>();

        //boolean add(E e) : 添加元素
        //细节:如果要往List系列的集合中添加元素,那么该方法永远返回true,因为List系列的集合石允许元素重复的;
        //     如果要往Set系列的集合中添加元素,如果要添加的元素在集合中不存在,则添加成功返回true,
        //                                  如果要添加的元素在集合中存在,则添加失败返回false。因为Set系列的集合不允许重复。
        System.out.println("========== boolean add(E e) :添加元素 ==========");
        //将数据添加进集合中
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
        coll.add("eee");
        coll.add("fff");
        System.out.println(coll);           //[aaa, bbb, ccc, ddd, eee, fff]
        System.out.println();


        // boolean remove(Object o) : 从集合中移除指定的元素
        //因为Collection里面定义的是共性的方法,所以不能通过索引删除元素,而是通过元素的对象进行删除
        //方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false
        System.out.println("==========  boolean remove(Object o) : 从集合中移除指定的元素 ==========");
        //删除元素 "ddd"
        coll.remove("ddd");
        System.out.println(coll);           //[aaa, bbb, ccc, eee, fff]
        System.out.println();


        // boolean removeIf(Object o) : 根据条件进行移除
        System.out.println("==========  boolean removeIf(Object o) : 根据条件进行移除 ==========");
        //根据条件将字符串是 “aaa”的进行删除
        coll.removeIf(String -> String.equals("aaa"));
        System.out.println(coll);        //[bbb, ccc, eee, fff]
        System.out.println();


        // void clear() : 清空集合中的元素
        System.out.println("==========  void clear() : 清空集合中的元素 ==========");
        coll.clear();
        System.out.println(coll);     //[]
        System.out.println();


        System.out.println("========== 清空完数据后再次添加数据  ==========");
        //清空完数据后再次添加数据
        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        coll.add("ddd");
        coll.add("eee");
        coll.add("fff");
        System.out.println(coll);           //[aaa, bbb, ccc, ddd, eee, fff]
        System.out.println();


        // boolean contains(Object o) : 判断集合中是否存在指定的元素
        //细节:底层是依赖equals方法进行判断是否存在,因此如果想要用contains方法判断的是自定义对象,则需在Javabean类中重写equals方法
        System.out.println("==========  boolean contains(Object o) : 判断集合中是否存在指定的元素 ==========");
        boolean b1 = coll.contains("aaa");
        boolean b2 = coll.contains("sss");
        System.out.println(b1);      //true
        System.out.println(b2);      //false
        System.out.println();


        // boolean isEmpty()  : 判断集合是否为空
        System.out.println("==========  boolean isEmpty()  : 判断集合是否为空 ==========");
        boolean b3 = coll.isEmpty();
        System.out.println(b3);    //false
        System.out.println();


        // int size() : 集合的长度,也就是集合中元素的个数
        System.out.println("========== int size() : 集合的长度,也就是集合中元素的个数  ==========");
        int size = coll.size();
        System.out.println(size);       //6
    }
}

4. 输出结果

  • boolean add(E e) : 添加元素

在这里插入图片描述

  • boolean remove(Object o) : 从集合中移除指定的元素

在这里插入图片描述

  • boolean removeIf(Object o) : 根据条件进行移除

在这里插入图片描述

  • void clear() : 清空集合中的元素

在这里插入图片描述

  • boolean contains(Object o) : 判断集合中是否存在指定的元素

在这里插入图片描述

  • boolean isEmpty() : 判断集合是否为空

在这里插入图片描述

  • int size() : 集合的长度,也就是集合中元素的个数

在这里插入图片描述

5. 注意事项

在使用 Collection 集合时,有一些注意事项需要注意:

  1. 类型安全性: Collection 集合是通过泛型进行类型限定的,确保集合中只能存储指定类型的对象。在创建集合对象时要明确指定泛型类型,以避免在运行时出现类型转换错误或类型不匹配的问题。

  2. 空指针检查: 在向集合中添加元素或进行其他操作时,需要注意对空引用的判断。避免将 null 值传递给集合操作相关的方法。

  3. equals 和 hashCode 方法: 当存储自定义对象类型的元素时,要确保重写了对象的 equal() 和 hashCode() 方法。这样可以保证集合能正确判断元素是否相等和正确进行查找、删除等操作。否则,可能会导致元素无法正确比较和删除。

  4. 遍历操作: 在遍历 Collection 集合时,可以使用 Iterator、for-each 循环或者 Stream API。需要注意的是,不要在遍历过程中直接修改集合,否则可能导致并发修改异常。

  5. 线程安全性: 大部分 Collection 集合类是非线程安全的,如果在多线程环境中使用,需要保证适当的同步措施。或者可以选择使用线程安全的集合类,如 ConcurrentHashMap、CopyOnWriteArrayList 等。

  6. 性能考虑: 不同的集合类在性能方面可能有差异,根据实际需求选择合适的集合类。例如,ArrayList 适合随机访问和较频繁的插入删除操作,而 LinkedList 适合频繁的插入删除操作。

你可能感兴趣的:(#,Java基础语法,java,windows,idea)