转载

Java™ 教程(集合接口)

集合接口

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

Java™ 教程(集合接口)

Set 是一种特殊的 CollectionSortedSet 是一种特殊的 Set ,依此类推,另请注意,层次结构由两个不同的树组成 — Map 不是真正的 Collection

请注意,所有核心集合接口都是泛型,例如,这是 Collection 接口的声明。

public interface Collection<E>...

<E> 语法告诉你该接口是泛型,声明 Collection 实例时,你可以并且应该指定集合中包含的对象类型,指定类型允许编译器验证(在编译时)你放入集合的对象类型是否正确,从而减少运行时的错误,有关泛型类型的信息,请参阅泛型课程。

当你了解如何使用这些接口时,你将了解有关Java集合框架的大部分知识,本章讨论有效使用接口的通用准则,包括何时使用哪个接口,你还将学习每个接口的编程语法,以帮助你充分利用它。

为了保持核心集合接口的数量可管理,Java平台不为每个集合类型的每个变体提供单独的接口(此类变体可能包括不可变、固定大小和仅附加),相反,每个接口中的修改操作被指定为可选的 — 给定的实现可以选择不支持所有操作。如果调用了不受支持的操作,则集合将抛出 UnsupportedOperationException ,实现负责记录它们支持哪些可选操作,所有Java平台的泛型实现都支持所有可选操作。

以下列表描述了核心集合接口:

  • Collection — 集合层次结构的根,集合表示一组称为其元素的对象, Collection 接口是所有集合实现的最小公分母,用于传递集合并在需要最大通用性时对其进行操作。某些类型的集合允许重复元素,而其他集合则不允许,有些是有序的,有些则是无序的。Java平台不提供此接口的任何直接实现,但提供了更具体的子接口的实现,例如 SetList ,另请参阅 Collection 接口部分。
  • Set — 一个不能包含重复元素的集合,该接口对数学集合抽象进行建模,用于表示集合,例如包含扑克牌的牌,构成学生日程表的课程或在机器上运行的进程,另请参见 Set 接口部分。
  • List — 有序集合(有时称为序列), List 可以包含重复元素, List 的用户通常可以精确控制列表中每个元素的插入位置,并可以通过整数索引(位置)访问元素,如果你使用过 Vector ,那么你就熟悉 List 的一般风格,另请参阅 List 接口部分。
  • Queue — 用于在处理之前保存多个元素的集合,除了基本的 Collection 操作外, Queue 还提供追加插入、提取和检查操作。

    Queue 通常(但不一定)以FIFO(先进先出)方式对元素进行排序,除了优先级队列之外,优先级队列根据提供的比较器或元素的自然顺序对元素进行排序。无论使用什么顺序,队列的头部是通过调用remove或poll移除元素,在FIFO队列中,所有新元素都插入队列的尾部,其他类型的队列可能使用不同的放置规则,每个 Queue 实现都必须指定其排序属性,另请参阅 Queue 接口部分。

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

    Deque 可用作FIFO(先进先出)和LIFO(后进先出),在双端队列中,可以在两端插入、检索和删除所有新元素,另请参阅 Deque 接口部分。

  • Map — 将键映射到值的对象, Map 不能包含重复的键,每个键最多可以映射一个值,如果你使用过 Hashtable ,那么你已经熟悉了 Map 的基础知识,另请参阅 Map 接口部分。

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

  • SortedSet — 一个按升序维护其元素的 Set ,提供了几个额外的操作以利用排序,排序集用于自然排序的集合,例如单词列表和成员名册,另请参阅 SortedSet 接口部分。
  • SortedMap — 按升序键顺序维护映射的 Map ,这是 SortedSetMap 模拟,排序映射用于自然排序的键/值对集合,例如字典和电话目录,另请参阅 SortedMap 接口部分。

要了解排序接口如何维护其元素的顺序,请参阅对象排序部分。

接口摘要

核心集合接口是Java集合框架的基础。

Java集合框架层次结构由两个不同的接口树组成:

  • 第一个树以 Collection 接口开始,它提供了所有集合使用的基本功能,例如 addremove 方法,它的子接口 — SetListQueue — 提供更专业的集合。
  • Set 接口不允许重复元素,这对于存储诸如一副纸牌或学生记录之类的集合非常有用, Set 接口有一个子接口 SortedSet ,它提供了集合中元素的排序。
  • List 接口提供有序集合,适用于需要精确控制每个元素插入位置的情况,你可以按照其确切位置从 List 中检索元素。
  • Queue 接口支持追加插入、提取和检查操作, Queue 中的元素通常以FIFO为基础进行排序。
  • Deque 接口可以在两端插入、删除和检查操作, Deque 中的元素可用于LIFO和FIFO。
  • 第二个树以 Ma​​p 接口开始,它映射键和值类似于 Hashtable
  • Map 的子接口 SortedMap 按升序或按 Comparator 指定的顺序维护其键值对。

这些接口允许独立于其表示的细节来操纵集合。

上一篇:集合介绍

原文  https://segmentfault.com/a/1190000017950240
正文到此结束
Loading...