目录一. 知识回顾
1. Java集合体系
2. 集合的关系图谱
二. Collection
1. 简介
2. 核心方法
二. Collections
1. 简介
2. 常用方法
3. 基本使用
3.1 排序方法3.2 查找方法3.3 替换方法3.4 同步方法3.5 其他方法三. Collection与Collections的区别四. 结语一. 知识回顾
1. Java集合体系
根据前面给大家讲解的内容可知,Java的集合整体上可以分为Collection和Map两大体系,而从这两大体系中又可以延伸细分为3个子类型:List-列表Set-集Map-映射从整体上来看,这几种集合之间的关系如下图所示:
2. 集合的关系图谱
另外集合的各个接口和类之间除了有共同之处,它们也有一些各自的特点,我们可以看看下面这个集合的关系图谱:
在上图中,有3个核心API需要我们掌握:Iterator: 我们可以通过迭代器遍历集合中的数据;
Collection: Collection是List、Set、Queue 这3种集合的父级接口;
Map: Map是映射表的父级接口。
为了让大家加深印象,接下来我们再单独复习一下Collection接口是怎么回事。
二. Collection
1. 简介
Collection是Java集合框架中的一个接口,它定义了一组用于存储、访问和操作对象的方法。它是Java集合框架中的基础接口之一,我们常用的很多集合类都实现了Collection接口或其子接口(如List、Set、Queue等)。
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;/*** @author 一一哥Sun*/ public class Demo19 {public static void main(String[] args) {//Collections的使用--排序方法List3.1.2 reverse方法reverse(List list)方法用于对List集合进行反转排序
,例如:
import java.util.ArrayList;import java.util.Collections;import java.util.List;/*** @author 一一哥Sun*/ public class Demo19 {public static void main(String[] args) {//Collections的使用--排序方法//调用Collections的reverse()排序方法--反转排序List3.1.3 shuffle方法s huffle(List list)方法用于对List集合进行随机排序
,例如:
import java.util.ArrayList;import java.util.Collections;import java.util.List;/*** @author 一一哥Sun*/ public class Demo19 {public static void main(String[] args) {//Collections的使用--排序方法//调用Collections的shuffle()排序方法--随机List3.2 查找方法Collections类也给我们提供了用于对集合进行二分查找的binarySearch(List extends Comparable super T>> list, T key)方法,该方法用于在有序集合中根据二分查找法,来查找到指定的元素,并返回元素在集合中的索引。如果指定元素不在集合中,则返回一个负数,表示应该插入该元素的位置。
binarySearch()方法案例如下:import java.util.ArrayList;import java.util.Collections;import java.util.List;/*** @author 一一哥Sun*/ public class Demo20 {public static void main(String[] args) {//Collections的使用--查找方法List3.3 替换方法Collections类给我们提供了一些用于替换的方法,比如replaceAll()、fill(),用于对集合进行替换。
3.3.1 replaceAll()方法replaceAll(List list, T oldVal, T newVal)方法用于将List集合中所有的旧元素替换为新元素
,例如:
import java.util.ArrayList;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo21 {public static void main(String[] args) {//Collections的使用--替换方法List3.3.2 fill()方法fill(List super T> list, T obj)方法用于用指定元素填充List集合
,例如:
import java.util.ArrayList;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo21 {public static void main(String[] args) {//Collections的使用--替换方法List3.4 同步方法Collections类提供了一些同步方法,如synchronizedCollection()、synchronizedList()、synchronizedMap()等,用于对集合进行同步处理,这可以保证多线程环境下的并发安全。
3.4.1 synchronizedCollection方法synchronizedCollection(Collection c)方法用于将指定集合转换为线程安全的集合,例如:import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo22 {public static void main(String[] args) {//Collections的使用--同步方法List3.4.2 synchronizedList方法synchronizedList(List list)方法用于将指定的List集合转换为线程安全的List集合,例如:import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo22 {public static void main(String[] args) {//Collections的使用--同步方法List3.4.3 synchronizedSet方法synchronizedSet(Set s)方法用于将指定的Set集合转换为线程安全的Set集合,例如:import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo22 {public static void main(String[] args) {//Collections的使用--同步方法Set3.4.4 synchronizedMap方法synchronizedMap(Mapimport java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo22 {public static void main(String[] args) {//Collections的使用--同步方法Map3.5 其他方法我们可以使用max()和min()方法分别输出集合中的最大和最小值,用frequency()方法统计某个数据在集合中出现的次数。
import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo23 {public static void main(String[] args) {List我们也可以使用Collections的copy()静态方法,将指定集合中的所有元素复制到另一个集合中。执行copy()方法后,目标集合中每个已复制元素的索引,将等同于源集合中该元素的索引。
import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.List;/*** @author*/ public class Demo23 {public static void main(String[] args) {List
Collections.copy(destList, srcList);System.out.println(destList);}}我们要注意:目标集合的长度至少要和源集合的长度相同。如果目标集合的长度更长,则不影响目标集合中的其余元素。如果目标集合的长度不够而无法包含整个源集合元素,程序会抛出 IndexOutOfBoundsException异常。
除了以上这些方法,还有其他的一些方法,比如将一个集合变成不可变的集合,用于对集合进行保护等,就不再一一给大家展示其用法了。这些方法基本上就是见名知意,大家根据名称调用就可以,非常的简单。总之,希望大家可以熟练掌握Collections类的使用方法,这对于Java开发人员来说是非常重要的。
三. Collection与Collections的区别综上所述,就可以把Collection与Collections的区别给大家总结出来了。Collection和Collections虽然名字很相似,但它们的作用和用法完全不同,其核心区别如下:Collection是Java集合框架中的一个接口,定义了一组用于存储、访问和操作对象的方法,它是所有集合类的基础接口之一;
Collections是Java集合框架中的一个工具类,提供了一系列的静态方法,方便我摸对集合进行排序、查找、替换等操作,它是一个类,而不是一个接口。
简单来说,Collection是一个接口,是Java集合框架中的基础接口之一;而Collections是一个工具类,提供了一系列静态方法,用于对集合进行高级操作。
四. 结语至此,就把今天的内容讲解完毕了,我相信大家也已经明白了Collection与Collections的区别了。那么今天的核心内容,就是下面这些了:Collection是Java集合的基础接口,List、Set等都继承自该接口;
Collections是操作集合的工具类,里面有若干个操作集合的方法;
你要熟练使用Collections里的几个常用方法哦。
以上就是Java中Collection与Collections的区别详解的详细内容,更多关于Java Collection与Collections区别的资料请关注脚本之家其它相关文章!
您可能感兴趣的文章:java.util.Collections类—emptyList()方法的使用浅谈Java中Collections.sort对List排序的两种方法Java使用Collections.sort()排序的方法java安全之CommonsCollections4详解Java中的Collections类的使用示例详解Java中Collections.sort的使用Java的可变参数与Collections类的功能示例解析Java Collection和Collections的区别Java中的集合工具类Collections详解Java中Collections.sort()排序方法举例详解Java中Collection和Collections的区别
