集合框架 是用于表示和操纵集合的一个统一架构。所有集合框架都包含以下内容:
- 接口:这些是代表集合的抽象数据类型。接口允许独立于其表示的细节来操纵集合。在面向对象的语言中,接口通常形成层次结构。
- 实现:这些是collection接口的具体实现。本质上,它们是可重用的数据结构。
- 算法:这些是对实现集合接口的对象执行有用的计算(例如搜索和排序)的方法。据说这些算法是多态的:也就是说,可以在适当的收集接口的许多不同实现中使用相同的方法。本质上,算法是可重用的功能。
1、下面描述了核心collection接口:
Collection
—集合层次结构的根。集合表示一组称为其元素的对象。该Collection
接口是最常见的分母是所有集合实现,用来传递周围集合和最大时,通用需要操纵它们。某些类型的集合允许重复的元素,而其他类型则不允许。一些是有序的,而其他则是无序的。Java平台不提供此接口的任何直接实现,但是提供更具体的子接口(例如Set
和)的实现List
。另请参见 “Collection接口”部分。Set
—不能包含重复元素的集合。该接口对数学集合的抽象进行建模,并用于表示集合,例如包含扑克手的纸牌,构成学生日程的课程或机器上运行的过程。另请参见 “Set接口”部分。List
—有序集合(有时称为sequence)。List
可以包含重复元素。List
通常,用户可以精确控制列表中每个元素的插入位置,并可以通过其整数索引(位置)访问元素。如果您曾经使用过Vector
,您将熟悉的一般风格List
。另请参见 “List接口”部分。Queue
—用于在处理之前保存多个元素的集合。除了基本Collection
操作外,一个Queue
还提供其他插入,提取和检查操作。队列通常但不一定以FIFO(先进先出)的方式对元素进行排序。优先队列除外,它们根据提供的比较器或元素的自然顺序对元素进行排序。无论使用哪种顺序,队列的开头都是将通过调用
remove
或删除的元素poll
。在FIFO队列中,所有新元素都插入队列的尾部。其他种类的队列可能使用不同的放置规则。每个Queue
实现都必须指定其排序属性。另请参见 “队列接口”部分。Deque
—用于在处理之前保存多个元素的集合。除了基本Collection
操作外,aDeque
还提供其他插入,提取和检查操作。双端队列可以同时用作FIFO(先进先出)和LIFO(先进先出)。在双端队列中,可以在两端插入,检索和删除所有新元素。另请参见 双端队列接口部分。
Map
—将键映射到值的对象。一个Map
不能包含重复键; 每个键最多可以映射到一个值。如果您曾经使用过Hashtable
,则已经熟悉的基础知识Map
。另请参见 “Map接口”部分。
最后两个核心集合接口只是分类的版本Set
和Map
:
SortedSet
—Set
保持其元素升序排列的。提供了一些其他操作以利用订购的优势。排序的集合用于自然排序的集合,例如单词列表和成员资格列表。另请参见 SortedSet接口部分。SortedMap
—一个Map
以升序顺序维护其映射的。这是的Map
类似物SortedSet
。排序后的地图用于键/值对的自然排序集合,例如字典和电话簿。另请参见 SortedMap接口部分。
2、集合框架中的接口
集合有两个基本接口:Collection 和 Map。
3、集合框架中的类
4、框架中的遗留类