Java集合Collection接口中的常用方法演示

简介: 由于接口不可以创建对象,所以,以下方法的演示将以Collection接口的子接口List的实现类ArrayList()进行演示。

添加 add(Objec tobj) 和 addAll(Collection coll)

(1)add(Objec tobj)添加一个对象,如果是基本数据类型,则自动装箱。

    ArrayList list1 = new ArrayList();
        Date date = new Date();
        list1.add(1);//基本数据类型自动装箱
        list1.add(date);//引用数据类型
        System.out.println(list1);

输出结果

2345_image_file_copy_92.jpg

(2)addAll(Collection coll)添加一个集合。

    ArrayList list1 = new ArrayList();
        list1.add("张三");
        list1.add(123);
        ArrayList list2 = new ArrayList();
        list2.add("李四");
        list2.add(55);
        list1.addAll(list2);//将集合list2加到集合list1中
        System.out.println(list1);

输出结果

2345_image_file_copy_93.jpg

获取有效元素的个数 int size()

int size()

    ArrayList list1 = new ArrayList();
        Date date = new Date();
        list1.add(1);
        list1.add(date);
        System.out.println(list1.size());

输出结果

2345_image_file_copy_94.jpg

清空集合 void clear()

void clear()

        ArrayList list1 = new ArrayList();
        Date date = new Date();
        list1.add(1);
        list1.add(date);
        list1.clear();//清空集合
        System.out.println(list1.size());//输出元素个数

输出结果

2345_image_file_copy_95.jpg

是否是空集合 boolean isEmpty()

boolean isEmpty()

        ArrayList list1 = new ArrayList();
        Date date = new Date();
        System.out.println(list1.isEmpty());//未添加元素,判断是否是空集合
        list1.add(1);
        list1.add(date);
        System.out.println(list1.isEmpty());//添加完元素,判断是否是空集合

输出结果

2345_image_file_copy_96.jpg

是否包含某个元素 boolean contains(Object obj) 和 boolean containsAll(Collection c)

(1)boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象。

    ArrayList list1 = new ArrayList();
        Date date = new Date();
        list1.add(1);
        list1.add(date);
        System.out.println(list1.contains(1));

输出结果

2345_image_file_copy_97.jpg

(2)boolean containsAll(Collection c):也是调用元素的equals方法来比较的。拿两个集合的元素挨个比较。

        ArrayList list1 = new ArrayList();
        ArrayList list2 = new ArrayList();
        //list1赋值
        list1.add(1);
        list1.add("张三");
        //list2赋值
        list2.add(1);
        list2.add("张三");
        System.out.println(list1.containsAll(list2));

输出结果

2345_image_file_copy_98.jpg

注意:如果是自定义对象,则需要在对象中重写Object的equals方法,否则比较的是地址。重写后比较的是属性的值。

删除 boolean remove(Object obj) 和 boolean removeAll(Collection coll)

(1)boolean remove(Object obj) :通过元素的equals方法判断是否是要删除的那个元素。只会删除找到的第一个元素。

        ArrayList list1 = new ArrayList();
        list1.add("张三");
        list1.add("李四");
        list1.add("张三");
        list1.add("张三");
        list1.add("张三");
        list1.remove("张三");//在集合list1中删除元素"张三"
        System.out.println(list1);

输出结果

2345_image_file_copy_99.jpg

(2)boolean removeAll(Collection coll):取当前集合的差集。(即A-B=A-AB)

        ArrayList list1 = new ArrayList();
        ArrayList list2 = new ArrayList();
        list1.add("张三");
        list1.add("李四");
        list2.add("王五");
        list2.add("李四");
        list1.removeAll(list2);
        System.out.println(list1);

输出结果

2345_image_file_copy_100.jpg

取两个集合的交集 boolean retainAll(Collection c)

boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c。

        ArrayList list1 = new ArrayList();
        ArrayList list2 = new ArrayList();
        list1.add("张三");
        list1.add("李四");
        list2.add("王五");
        list2.add("李四");
        list1.retainAll(list2);
        System.out.println(list1);

输出结果

2345_image_file_copy_101.jpg

集合是否相等 boolean equals(Object obj)

boolean equals(Object obj)

        ArrayList list1 = new ArrayList();
        ArrayList list2 = new ArrayList();
        list1.add("张三");
        list1.add("李四");
        list2.add("张三");
        list2.add("李四");
        System.out.println(list1.equals(list2));

输出结果

2345_image_file_copy_102.jpg

注意:该原理是调用集合元素的equals方法进行比较,如果集合元素是自定义对象,则必须要重写equals方法,否则比较的是地址值。

转成对象数组 Object[] toArray()

Object[] toArray()

    ArrayList list1 = new ArrayList();
        list1.add("张三");
        list1.add("李四");
        Object[] objects = list1.toArray();

获取集合对象的哈希值

hashCode()

        ArrayList list1 = new ArrayList();
        list1.add("张三");
        list1.add("李四");
        System.out.println(list1.hashCode());

输出结果

2345_image_file_copy_103.jpg

遍历 iterator()

iterator()

        ArrayList list1 = new ArrayList();
        list1.add("张三");
        list1.add("李四");
        Iterator iterator = list1.iterator();
        while (iterator.hasNext()){
            String next = (String) iterator.next();
            System.out.println(next);
        }

输出结果

2345_image_file_copy_104.jpg

相关文章
|
4天前
|
存储 安全 Java
Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
23 3
|
14天前
|
数据采集 JSON Java
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
19天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
46 6
|
21天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
37 5
|
2月前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
44 4
|
2月前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
46 4
|
2月前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
27 1
|
2月前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
27 2
|
5月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
5月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。