Collection是集合框架的根接口,一个集合代表一组对象,我们称之为元素.不同的集合具有不同的特性,比如有的集合可以有重复元素,有的不可以,有的可以排序,有的不可排序,如此等等,而Collection作为集合的根接口,它规范定义了集合的通用方法,一个集合我们可以看作一个在内存中的小型数据库,而数据库的常用操作无外乎"增删改查",Collection中的方法也大体是这些类型操作.
Java集合框架中没有直接实现Collection的子类,而是通过一系列子接口,比如List,Set,Queue继承Collection从而划分不同的集合类型.Collection的间接实现子类的都提供两个"标准"的构造方法,一个无参构造,一个定义集合大小的有参构造,但这并不是java的强制规范,这时Collection的实现通用类都遵循这个规则.
Colletion接口中定义的方法是集合操作中最通用的操作方法,按照对元素不同的操作类型大致可以分为添加,删除,判断,获取这四种,集合为了实现元素的遍历还要提供一个获取迭代器的方法,此外在java 8之后为了应对现在分布式并行操作需求,提供了一个可分割迭代器spliterator(),以及stream()和parallelStream()
Set是一种无序而元素唯一的集合类型,它是比如扑克中的卡牌,学生课程表安排的课程,计算机中运行的进程这些事物的数学概念的抽象表示.Set接口相比Colletion并没有更多的操作方法,而他的子接口SortedSet和NavigableSet进行了更多的拓展,可以看出子接口中方法侧重对元素的比较和排序
List是一种有序且元素可重复的集合类型,它像数组一样可以通过索引来快速查找操作元素.
Queue是一种队列结构,它更适合用来存储数据而不是处理数据.Queue常用来做先见先出的(FIFO)的存储结构,新加入的元素会被存储在集合尾部,取出元素则会从头部取出.Deque是一种双向队列,既可以做先进先出(FIFO)也可以做先进后出(LIFO)。