Java中Collection和Collections的区别(Demo详解)

简介: Java基础学习分享!
【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿你们奔赴在各自的热爱中…

最近在阅读大家的面试博客,比较经常提及的一个点就是Java中Collection和Collections的区别,那我就简单整理一下吧!

在这里插入图片描述

Collection是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。实现该接口的类主要有List和Set,该接口的设计目标是为了各种具体的集合提供最大化的统一的操作方式。
  
Java集合相关知识请参考:List和Set集合基础详解  


Collections是针对集合类的一个包裹类,它提供了一系列静态方法实现对各种集合的搜索、排序以及线程安全化等操作,其中的大多数方法都是用于处理线性表。Collections类不能实例化,如同一个工具类,服务于Collection框架。如果在使用Collections类的方法时,对应的Collection对象null,则这些方法都会抛出NullPointerException。


总结:Collection是一个集合接口,Collections是针对集合类的一个包装类,工具类

在这里插入图片描述
java.util.Collections 是一个包装类。它包含有各种有关集合操作的 静态多态方法。此类不能实例化,就像一 个工具类,服务于Java的Collection框架。

我用Java代码给大家演示了一些Collections 中常用方法:可亲测实践

package com.bcqn.controller;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class TestCollection {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        int array[] = {12, 2020, 30, 123, 999};
        for (int i = 0; i < array.length; i++) {
            list.add(array[i]);
        }
        //排序(Sort)
        Collections.sort(list);//排序
        System.out.println(list);

       //反转(Reverse)
        //使用Reverse方法可以根据元素的自然顺序,对指定列表按降序进行排序。
        Collections.reverse(list);//反转
        System.out.println(list);

        //替换所有元素(Fill)
        Collections.fill(list,-1);//替换
        System.out.println(list);

        //拷贝(copy)
        int array1[] = {12, 2020, 30, 123, 999};
        for (int i = 0; i < array1.length; i++) {
            list.add(array[i]);
        }
        List<Integer> list1 = new ArrayList<Integer>(Arrays.asList(new Integer[list.size()]));//目标列表
        Collections.copy(list1,list);//替换
        System.out.println(list1);
        //返回Collections中最小元素(min)
        int min = Collections.min(list);//替换
        System.out.println("返回Collections中最小元素(min):"+min);

        //返回Collections中最大元素(max)
        for (int i = 0; i < array1.length; i++) {
            list.add(array[i]);
        }
        int max = Collections.max(list);//替换
        System.out.println("返回Collections中最大元素(max):"+max);

    }

}
 

运行结果

[12, 30, 123, 999, 2020]
[2020, 999, 123, 30, 12]
[-1, -1, -1, -1, -1]
[-1, -1, -1, -1, -1, 12, 2020, 30, 123, 999]
返回Collections中最小元素(min):-1
返回Collections中最大元素(max):2020

Process finished with exit code 0

哈哈这下不会犯迷糊了吧!


The best investment is to invest in yourself.

非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞👍 关注❤️ 分享👥 留言💬thanks!!!

愿你们奔赴在自己的热爱里!

目录
相关文章
|
11天前
|
存储 监控 算法
Java中的内存管理:理解Garbage Collection机制
本文将深入探讨Java编程语言中的内存管理,着重介绍垃圾回收(Garbage Collection, GC)机制。通过阐述GC的工作原理、常见算法及其在Java中的应用,帮助读者提高程序的性能和稳定性。我们将从基本原理出发,逐步深入到调优实践,为开发者提供一套系统的理解和优化Java应用中内存管理的方法。
|
9天前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
13 1
|
1月前
|
Java
java基础(4)public class 和class的区别及注意事项
本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。
25 3
java基础(4)public class 和class的区别及注意事项
|
13天前
|
Java 编译器 C语言
【一步一步了解Java系列】:探索Java基本类型与C语言的区别
【一步一步了解Java系列】:探索Java基本类型与C语言的区别
32 2
|
13天前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
27 1
|
18天前
|
自然语言处理 Java 数据处理
Java IO流全解析:字节流和字符流的区别与联系!
Java IO流全解析:字节流和字符流的区别与联系!
44 1
|
18天前
|
缓存 安全 Java
Java中 final、finally、finalize 有什么区别?
本文详细阐述了Java中`final`、`finally`和`finalize`的区别:`final`用于修饰类、方法和变量以表示不可变性;`finally`是用于确保在`try-catch`结构中无论是否发生异常都能执行的代码块;而`finalize`是`Object`类的方法,用于在对象被垃圾回收前执行清理工作,但在JDK 9中已被标记为弃用。
14 0
Java中 final、finally、finalize 有什么区别?
|
18天前
|
Java
Java中抽象类和接口有什么区别?
本文阐述了Java中抽象类和接口的区别,包括类型扩展、方法/属性访问控制符、方法实现、使用目的等方面的不同,并提供了抽象类和接口的使用示例,以及Java中其他类型的类(普通类、内部类等)的简介。
17 0
Java中抽象类和接口有什么区别?
|
2天前
|
缓存 算法 Java
Java 中线程和纤程Fiber的区别是什么?
【10月更文挑战第14天】
10 0
|
27天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
29 4