Collections 从名字就可以看出来,是对集合的操作,它提供了一系列内部类集合,主要为以下类型:
- 不可变集合
- 同步的集合
- 有类型检查的集合
- 空集合
- 只含一个元素的集合
还提供了一系列很有用的静态方法,主要包括以下功能:
- 排序
- 二分查找
- 反转
- 打乱
- 交换元素位置
- 复制
- 求出集合中最小/大值
1. 集合
1.1 不可变集合
有时候我们拿到一部分数据,这个数据不允许修改、删除,只允许读取,我们可以使用Collections.unmodifiableXXX()
方法来实现。
Collections提供了对以下集合的不可变支持:
首先是用一个静态方法解决其他容器向不可变容器的转换。
public static <T> Collection<T> unmodifiableCollection(Collection<? extends T> c) {
return new UnmodifiableCollection<>(c);
}
UnmodifiableCollection
作为其他不可变容器的父类方法,在面对增删改(包括迭代器的remove也不支持)操作时会返回一个UnsupportedOperationException
在内部实现上就是用一个final
类型的容器去接受传入的参数并返回。
1.2 同步集合
上述结合由synchronize关键字实现