- 小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
Collection
Collection是一个接口类,也是最基本的集合接口,一个Collection代表一组Object,即集合的元素。
上图是整个集合架构图,可以看出,Collection接口存在三种子类型接口:List、Set、Queue;
接着是一些抽象类,最后是实现类,如常见的:ArrayList、LinkedList、HashMap、HashSet、LinkedHashSet、LinkedHashMap等等。
集合框架
操作集合的统一架构,包含内容如下:
1、接口:是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象
2、实现: 是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。
3、算法: 是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
除了集合,该框架也定义了几个 Map 接口和类。Map 里存储的是键/值对。尽管 Map 不是集合,但是它们完全整合在集合中。
Collections
Collections是一个工具类,包含了很多关于集合操作相关的方法,专门用于操作集合的工具类。
常见方法
下面列举一下Collections中常见的方法
-
Sort(List list):按自然排序的升序排序
-
Sort(List list,Comparator c):自定义排序规则,Comparator控制排序逻辑
-
shuffle(List list):随机排序
-
max(Collection coll):获取最大值元素
-
max(Collection coll, Comparator c):自定义规则获取最大值元素,Comparator控制排序逻辑
-
reverse(List list):反转集合
-
swap(List list, int i , int j):交换两个索引位置元素
-
binarySearch(List list, Object key):对集合继续二分查找,返回索引,集合必须为有序
-
fill(List list, Object obj):用元素obj填充list中所有元素
-
frequency(Collection c, Object o):统计元素出现次数
-
indexOfSubList(List list, List target):统计targe在list中第一次出现的索引,找不到则返回-1
-
replaceAll(List list, Object oldVal, Object newVal):用新元素替换旧元素
只是简单列举了常见的几个,还有很多方法没列出来,感兴趣的可以看一下源码。