Lesson: Interfaces

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

核心集合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:

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

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

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

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

首页