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!!!

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

目录
相关文章
|
3月前
|
存储 监控 算法
Java中的内存管理:理解Garbage Collection机制
本文将深入探讨Java编程语言中的内存管理,着重介绍垃圾回收(Garbage Collection, GC)机制。通过阐述GC的工作原理、常见算法及其在Java中的应用,帮助读者提高程序的性能和稳定性。我们将从基本原理出发,逐步深入到调优实践,为开发者提供一套系统的理解和优化Java应用中内存管理的方法。
|
2月前
|
Java 程序员
Java社招面试题:& 和 && 的区别,HR的套路险些让我翻车!
小米,29岁程序员,分享了一次面试经历,详细解析了Java中&和&&的区别及应用场景,展示了扎实的基础知识和良好的应变能力,最终成功获得Offer。
88 14
|
1月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
26 1
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
68 8
|
2月前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
80 17
|
2月前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
3月前
|
Java
通过Java代码解释成员变量(实例变量)和局部变量的区别
本文通过一个Java示例,详细解释了成员变量(实例变量)和局部变量的区别。成员变量属于类的一部分,每个对象有独立的副本;局部变量则在方法或代码块内部声明,作用范围仅限于此。示例代码展示了如何在类中声明和使用这两种变量。
|
3月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
45 1
|
3月前
|
Java 编译器 C语言
【一步一步了解Java系列】:探索Java基本类型与C语言的区别
【一步一步了解Java系列】:探索Java基本类型与C语言的区别
67 2
|
3月前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
47 1
下一篇
开通oss服务