https://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.html
集合框架在我们日常开发中使用的频率很高,通常作为一类对象的容器使用,借助JCF提供的各类操作方法,我们可以很轻易地完成对集合容器的各种操作。
JCF在Java1.2版本中首次提出并提供,我们将以JCF在JDK1.8的实现进行讨论。
JCF主要由三个部分组成:
1.接口
JCF中的主要接口有Collection
,List
,Set
,Map
,Queue
等。
一般将其分为两组:
-
java.util.Collection
最基础的集合接口,他们都是具有集合容器语义的接口,是一堆对象的集合。主要包含java.util.List
,java.util.Set
,java.util.Queue
,java.util.SortedSet
,
java.util.concurrent.BlockingQueue
等。
-
java.util.Map
基于Map的接口其实并不是真正的集合,但是这些接口都包含有collection-view
集合视图的操作,使对其的操作就像操作集合一样,主要包含java.util.SortedMap
,java.util.concurrent.ConcurrentMap
等。
集合有unmodifiable与modifiable之分,指的是对集合本身的操作,如add(),remove(),clear()。
集合有immutable和mutable之分,指的是集合内部的元素是否可变。
List有fixed-size和variable-size之分,当List保证其大小是一个固定值,则该List是定长的,反之则是变长。
List被RandomAccess接口表示后标识该List支持快速随机访问(固定时间),否则表名该List是顺序访问,当对一个列表进行迭代时,如果普通循环比使用迭代器快时则应该实现此接口表明该List支持快速随机访问。随机访问列表使用循环遍历,顺序访问列表使用迭代器遍历。
2.实现
3.算法
JCF内部提供了很多算法的实现,比如Sorting、Shuffling、Search等
在后面实现中具体分析中具体说明。