Lesson: Interfaces

核心集合interface封装了不同类型的集合,如下图所示。这些interface允许独立于其表示的细节来操纵集合。核心集合interface是 Java Collections Framework 的基础。如下图所示,核心集合interface形成一个层次结构。

两棵interface树,一棵以 Collection 开头,包括 Set,SortedSet,List 和 Queue,另一棵以 Map 开头,包括 SortedMap。

核心集合interface。

SetCollection的特殊类型,SortedSetSet的特殊类型,依此类推。还要注意,层次结构由两个不同的树组成-Map不是 true 的Collection

请注意,所有核心集合interface都是通用的。例如,这是Collectioninterface的声明。

public interface Collection<E>...

<E>语法告诉您该interface是通用的。声明Collection实例时,可以并且应该指定集合中包含的对象的类型。指定类型可以使编译器在编译时验证您放入集合中的对象类型是否正确,从而减少了运行时的错误。有关泛型类型的信息,请参见Generics (Updated)类。

当您了解如何使用这些interface时,您将了解有关 Java Collections Framework 的大部分知识。本章讨论有效使用interface的一般准则,包括何时使用哪个interface。您还将学习每种interface的编程习惯用法,以帮助您充分利用interface。

为了使核心集合interface的数量易于 管理,Java 平台没有为每种集合类型的每个变体提供单独的interface。 (这些变体可能包括不可变的,固定大小的和仅附加的.)相反,每个interface中的修改操作都指定为可选-给定的实现可能选择不支持所有操作。如果调用了不受支持的操作,则集合将引发UnsupportedOperationException。实现负责记录它们支持哪些可选操作。所有 Java 平台的通用实现都支持所有可选操作。

下表描述了核心收集interface:

  • Collection —集合层次结构的根。集合表示一组称为其元素的对象。 Collectioninterface是所有集合实现的最小公分母,用于在需要最大通用性时传递集合并对其进行操作。某些类型的集合允许重复的元素,而其他类型则不允许。一些是有序的,而其他则是无序的。 Java 平台不提供此interface的任何直接实现,但是提供更具体的子interface(例如SetList)的实现。另请参见收集interface部分。

  • Set —不能包含重复元素的集合。该interface对 math 集合的抽象进行建模,并用于表示集合,例如包含扑克手的纸牌,构成学生日程的类或机器上运行的过程。另请参见设置interface部分。

  • List —有序集合(有时称为序列)。 List可以包含重复的元素。 List的用户通常可以精确控制列表中每个元素的插入位置,并可以通过其整数索引(位置)访问元素。如果您使用过Vector,那么您将熟悉List的一般风格。另请参见列表interface部分。

  • Queue —用于在处理之前保存多个元素的集合。除了基本的Collection操作之外,Queue还提供其他插入,提取和检查操作。

队列通常但不一定以 FIFO(先进先出)的方式对元素进行排序。优先队列除外,它们根据提供的比较器或元素的自然 Sequences 对元素进行排序。无论使用哪种排序,队列的开头都是将通过调用removepoll删除的元素。在 FIFO 队列中,所有新元素都插入到队列的尾部。其他种类的队列可能使用不同的放置规则。每个Queue实现都必须指定其排序属性。另请参见队列interface部分。

  • Deque —用于在处理之前保存多个元素的集合。除了基本的Collection操作之外,Deque还提供其他插入,提取和检查操作。

deque 可以同时用作 FIFO(先进先出)和 LIFO(先进先出)。在 deque 中,所有新元素都可以在两端插入,检索和删除。另请参见deque interface部分。

  • Map —将键 Map 到值的对象。 Map不能包含重复的密钥;每个键最多可以 Map 到一个值。如果您使用过Hashtable,那么您已经熟悉Map的基础知识。另请参见Map interface部分。

最后两个核心集合interface只是SetMap的排序版本:

  • SortedSet —一个Set,以其升序维护其元素。提供了一些附加操作以利用 Order 的优势。排序的集合用于自然排序的集合,例如单词列表和成员身份记录。另请参见SortedSet interface部分。

  • SortedMap —一个Map,以升序 Sequences 维护其 Map。这是SortedSetMap模拟。排序后的 Map 用于键/值对的自然排序集合,例如字典和电话簿。另请参见SortedMap interface部分。

要了解排序后的interface如何维护其元素的 Sequences,请参见Object Ordering部分。