没腿的鸟 发表于 2023-5-29 11:10:55

Java中Collection与Collections有什么区别?Java常见面试题解析

本文将为大家详细讲解Java中Collection与Collections的区别点,这是我们进行开发时经常用到的知识点,也是大家在学习Java中很重要的一个知识点,更是我们在面试时有可能会问到的问题!
文章较长,干货满满,建议大家收藏慢慢学习。文末有本文重点总结,主页有全系列文章分享。技术类问题,欢迎大家和我们一起交流讨论!
前言

截止到现在我们已经把 Java里的List、SET和Map 这三大集合都给大家讲解完毕了,不知道各位掌握了多少呢?如果你对之前的内容还没有熟练掌握,可以把前面的文章再多读几遍。如果你已经掌握的很好了,那就继续阅读今天的内容吧。今天会再用一篇文章,把集合中遗漏的内容给大家梳理一下,比如Collection与Collections的区别。
全文大约 【3300】 字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图视频,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考...
一. 知识回顾

1. Java集合体系

根据前面给大家讲解的内容可知,Java的集合整体上可以分为 Collection 和 Map 两大体系,而从这两大体系中又可以延伸细分为 3个子类型:
List-列表
Set-集
Map-映射
从整体上来看,这几种集合之间的关系如下图所示:
https://img2023.cnblogs.com/blog/2950821/202305/2950821-20230529101322412-1194517191.png
2. 集合的关系图谱

另外集合的各个接口和类之间除了有共同之处,它们也有一些各自的特点,我们可以看看下面这个集合的关系图谱:
https://img2023.cnblogs.com/blog/2950821/202305/2950821-20230529101342899-2089759987.png
在上图中,有3个核心API需要我们掌握:

[*]Iterator: 我们可以通过迭代器遍历集合中的数据;
[*]Collection: Collection是List、Set、Queue 这3种集合的父级接口;
[*]Map: Map是映射表的父级接口。
为了让大家加深印象,接下来我们再单独复习一下Collection接口是怎么回事。
二. Collection

1. 简介

Collection是Java集合框架中的一个接口,它定义了一组用于存储、访问和操作对象的方法。
它是Java集合框架中的基础接口之一,我们常用的很多集合类都实现了Collection接口或其子接口(如List、Set、Queue等)。
https://img2023.cnblogs.com/blog/2950821/202305/2950821-20230529101409225-730558830.png
2. 核心方法

Collection接口中定义了一系列用于操作集合的通用核心方法,包括添加、删除、遍历、查找等,Collection的各个子类都需要实现这些方法。下面是一些常用的Collection接口方法:

[*]add(E e) :将元素e添加到集合中;
[*]remove(Object o) :从集合中删除对象o;
[*]contains(Object o) :判断集合中是否包含对象o;
[*]size() :返回集合中元素的个数;
[*]iterator() :返回集合中元素的迭代器。
通过这些方法,我们可以轻松地操作集合中的元素,实现各种常用的功能。
二. Collections

1. 简介

Collections是Java集合框架为了方便我们进行集合开发,为我们提供的一个 操作Set、List和Map等集合的 工具类, 位于java.util包中 。该类提供了一系列的静态方法,可以实现对集合进行排序、查找、替换、复制等操作。Collections类中的方法都是静态方法,不需要创建其对象即可使用。
利用Collections类,我们可以对集合进行一些高级的操作,比如对集合进行排序、查找最大值、查找最小值等。总之,Collections类中提供的方法,可以帮助我们简化代码,提高开发效率。
2. 常用方法

Collections类中为我们提供的方法其实有很多,大致可以分为以下几类:

[*]创建空白集合: emptyList()、emptyMap()、emptySet():返回对应的不可变的空集合,无法向其中添加或删除元素;
[*]创建单个元素的集合:singletonList(T o)、singletonMap(K key, V value)、singleton(T o):返回的是不可变的单元素集合,无法向其中添加或删除元素;
[*]排序方法:sort、reverse、shuffle、swap、rotate;
[*]查找方法:binarySearch;
[*]替换方法:replaceAll、fill;
[*]复制方法:copy;
[*]同步方法:synchronizedCollection、synchronizedList、synchronizedMap等;
[*]不可修改方法:unmodifiableCollection、unmodifiableList、unmodifiableMap等;
[*]其他方法:frequency、max、min、disjoint、frequency、indexOfSubList、lastIndexOfSubList等。
接下来我们就通过几个案例,来教大家学会这些方法该如何使用。
3. 基本使用

3.1 排序方法

Collections类给我们提供了好几个排序方法,比如sort()、reverse()、shuffle() 等,用于对集合进行排序。
3.1.1 sort方法

sort(List list)方法用于对List集合进行升序排序,例如:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Demo19 {

        public static void main(String[] args) {
                //Collections的使用--排序方法
                List<Integer> list = new ArrayList<>();
                list.add(3);
                list.add(1);
                list.add(2);
                //调用Collections的sort()排序方法---升序
                Collections.sort(list);
                System.out.println(list);//
        }
}3.1.2 reverse方法

reverse(List list)方法用于对List集合进行反转排序,例如:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Demo19 {

    public static void main(String[] args) {
      //Collections的使用--排序方法
      //调用Collections的reverse()排序方法--反转排序
      List<Integer> list2 = new ArrayList<>();
      list2.add(1);
      list2.add(2);
      list2.add(3);
      Collections.reverse(list2);
      System.out.println(list2);//
    }
}3.1.3 shuffle方法

shuffle(List list)方法用于对List集合进行随机排序,例如:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Demo19 {

    public static void main(String[] args) {
      //Collections的使用--排序方法
      //调用Collections的shuffle()排序方法--随机
      List<Integer> list3 = new ArrayList<>();
      list3.add(1);
      list3.add(2);
      list3.add(3);
      Collections.shuffle(list3);
      System.out.println(list3);//
    }
}3.2 查找方法


Collections类也给我们提供了用于对集合进行二分查找的 <strong>binarySearch(List
页: [1]
查看完整版本: Java中Collection与Collections有什么区别?Java常见面试题解析