Java记录 -62- java.util.Collections

来源:互联网 发布:襄阳移动云计算招聘 编辑:程序博客网 时间:2024/06/03 15:07

在学数组的时候,JDK为我们提供了一个Arrays类,该类提供了许多静态方法来操作数组。

同时针对集合类也提供了一个Collections类,同样也提供了许多静态方法来对集合进行操作。

Collection 和Collections的区别:

java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

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

 

Collections提供的方法分类:

空集合 

Collections.EMPTY_LIST,Collections.emptyList()——返回只读的空LIST 集合

Collections.EMPTY_MAP,Collections.emptyMap()——返回只读的空MAP集合

Collections.EMPTY_SET,Collections.emptySet()返回只读的空SET集合

所谓的空集合指的是没有元素在这些集合中,特别需要注意的是返回的集合都是只读的。当尝试修改时会抛出UnsupportedOperationException异常。

 

单元素集合 

Collections中的单元素集合指的是集合只有一个元素而且集合只读。

Collections.singletonList——用来生成只读的单一元素的List

Collections.singletonMap——用来生成只读的单Key和Value组成的Map

Collections.singleton——用来生成只读的单一元素的Set

 

只读集合 

Collections提供了几种生成只读集合的方法:unmodifiableCollection,unmodifiableList,unmodifiableMap,unmodifiableSet,unmodifiableSortedMap,unmodifiableSortedSet。这些集合一旦初始化以后就不能修改,任何修改这些集合的方法都会抛出UnsupportedOperationException异常。

 

Checked集合(Checked Collections)

Checked集合具有检查插入集合元素类型的特性,例如当我们设定checkedList中元素的类型是String的时候,如果插入其他类型的元素就会抛出ClassCastExceptions异常,Java5中提供泛型的功能,泛型功能能够在代码编译阶段就约束集合中元素的类型,但有些时候声明的集合可能是raw集合,编译阶段的类型约束就不起作用了,这个时候Checked集合就能起到约束集合中元素类型的作用。

Collections中提供了以下生成Checked集合的方法checkedCollection,checkedList,checkedMap,checkedSet,checkedSortedMap,checkedSortedSet

 

同步集合(Synchronized Collections) 

Collections的synchronizedXxxxx系列方法顾名思义会返回同步化集合类(SynchronizedMap,SynchronizedList等等)。这些集合类内部实现都是通过一个mutex(互斥体)来实现对这些集合操作的同步化。

 

Enumeration接口 

从JDK1.0开始Java就提供了Enumeration 接口。Collections中list和enumeration和Enumeration接口相关。

list(Enumeration<T> e) 方法用于有Enumeration接口中产生一个List

enumeration(Collection<T> c) 方法用于基于Collection返回Enumeration。

 

查找替换 

fill——使用指定元素替换指定列表中的所有元素。

frequency——返回指定 collection 中等于指定对象的元素数。

indexOfSubList—— 返回指定源列表中第一次出现指定目标列表的起始位置,如果没有出现这样的列表,则返回 -1。

lastIndexOfSubList——返回指定源列表中最后一次出现指定目标列表的起始位置,如果没有出现这样的列表,则返回-1。

max—— 根据元素的自然顺序,返回给定 collection 的最大元素。

min——根据元素的自然顺序 返回给定 collection 的最小元素。

replaceAll——使用另一个值替换列表中出现的所有某一指定值。

 

集合排序 

Collections还提供了集中对集合进行排序的方法。

reverse——对List中的元素倒序排列

shuffle——对List中的元素随机排列

sort——对List中的元素排序

swap——交换List中某两个指定下标位元素在集合中的位置。

rotate——根据指定的距离轮换指定列表中的元素。

 

其他方法 

binarySearch——使用二进制搜索算法来搜索指定列表,以获得指定对象。

addAll——将所有指定元素添加到指定 collection 中。

copy——将所有元素从一个列表复制到另一个列表。

disjoint——如果两个指定 collection 中没有相同的元素,则返回 true。

nCopies——返回由指定对象的 n 个副本组成的不可变列表。

原创粉丝点击