集合接口
核心集合接口封装了不同类型的集合,如下图所示,这些接口允许独立于其表示的细节来操纵集合,核心集合接口是Java集合框架的基础,如下图所示,核心集合接口形成层次结构。
Set是一种特殊的Collection,SortedSet是一种特殊的Set,依此类推,另请注意,层次结构由两个不同的树组成 — Map不是真正的Collection。
请注意,所有核心集合接口都是泛型,例如,这是Collection接口的声明。
public interface Collection...
当你了解如何使用这些接口时,你将了解有关Java集合框架的大部分知识,本章讨论有效使用接口的通用准则,包括何时使用哪个接口,你还将学习每个接口的编程语法,以帮助你充分利用它。
为了保持核心集合接口的数量可管理,Java平台不为每个集合类型的每个变体提供多带带的接口(此类变体可能包括不可变、固定大小和仅附加),相反,每个接口中的修改操作被指定为可选的 — 给定的实现可以选择不支持所有操作。如果调用了不受支持的操作,则集合将抛出UnsupportedOperationException,实现负责记录它们支持哪些可选操作,所有Java平台的通用实现都支持所有可选操作。
以下列表描述了核心集合接口:
Collection — 集合层次结构的根,集合表示一组称为其元素的对象,Collection接口是所有集合实现的最小公分母,用于传递集合并在需要最大通用性时对其进行操作。某些类型的集合允许重复元素,而其他集合则不允许,有些是有序的,有些则是无序的。Java平台不提供此接口的任何直接实现,但提供了更具体的子接口的实现,例如Set和List,另请参阅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接口部分。
最后两个核心集合接口只是Set和Map的排序版本:
SortedSet — 一个按升序维护其元素的Set,提供了几个额外的操作以利用排序,排序集用于自然排序的集合,例如单词列表和成员名册,另请参阅SortedSet接口部分。
SortedMap — 按升序键顺序维护映射的Map,这是SortedSet的Map模拟,排序映射用于自然排序的键/值对集合,例如字典和电话目录,另请参阅SortedMap接口部分。
要了解排序接口如何维护其元素的顺序,请参阅对象排序部分。
接口摘要核心集合接口是Java集合框架的基础。
Java集合框架层次结构由两个不同的接口树组成:
第一个树以Collection接口开始,它提供了所有集合使用的基本功能,例如add和remove方法,它的子接口 — Set、List和Queue — 提供更专业的集合。
Set接口不允许重复元素,这对于存储诸如一副纸牌或学生记录之类的集合非常有用,Set接口有一个子接口SortedSet,它提供了集合中元素的排序。
List接口提供有序集合,适用于需要精确控制每个元素插入位置的情况,你可以按照其确切位置从List中检索元素。
Queue接口支持追加插入、提取和检查操作,Queue中的元素通常以FIFO为基础进行排序。
Deque接口可以在两端插入、删除和检查操作,Deque中的元素可用于LIFO和FIFO。
第二个树以Map接口开始,它映射键和值类似于Hashtable。
Map的子接口SortedMap按升序或按Comparator指定的顺序维护其键值对。
这些接口允许独立于其表示的细节来操纵集合。
上一篇:集合介绍 下一篇:Collection接口文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/73100.html
集合介绍 本节介绍Java集合框架,在这里,你将了解集合是什么以及它们如何使你的工作更轻松、程序更好,你将了解构成Java集合框架的核心元素 — 接口、实现、聚合操作和算法。 集合 — 有时称为容器 — 只是一个将多个元素组合到一个单元中的对象,集合用于存储、检索、操作和传递聚合数据。通常,它们代表形成自然组的数据项,例如扑克牌(卡片集合)、邮件文件夹(信件集合)或电话目录(名称到电话号码的映射)...
Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...
Set接口 Set是一个不能包含重复元素的Collection,它模拟了数学集抽象,Set接口仅包含从Collection继承的方法,并添加禁止重复元素的限制,Set还为equals和hashCode操作的行为添加了一个更强的契约,允许Set实例有意义地进行比较,即使它们的实现类型不同,如果两个Set实例包含相同的元素,则它们是相等的。 Java平台包含三个通用的Set实现:HashSet、Tre...
Collection接口 Collection表示一组称为其元素的对象,Collection接口用于传递需要最大通用性的对象集合,例如,按照惯例,所有通用集合实现都有一个带有Collection参数的构造函数,此构造函数(称为转换构造函数)初始化新集合以包含指定集合中的所有元素,无论给定集合的子接口或实现类型如何,换句话说,它允许你转换集合的类型。 例如,假设你有一个Collection c,它可...
高级并发对象 到目前为止,本课程重点关注从一开始就是Java平台一部分的低级别API,这些API适用于非常基础的任务,但更高级的任务需要更高级别的构建块,对于充分利用当今多处理器和多核系统的大规模并发应用程序尤其如此。 在本节中,我们将介绍Java平台5.0版中引入的一些高级并发功能,大多数这些功能都在新的java.util.concurrent包中实现,Java集合框架中还有新的并发数据结构。 ...
阅读 3446·2021-09-22 15:50
阅读 3203·2019-08-30 15:54
阅读 2684·2019-08-30 14:12
阅读 3023·2019-08-30 11:22
阅读 2046·2019-08-29 11:16
阅读 3542·2019-08-26 13:43
阅读 1147·2019-08-23 18:33
阅读 887·2019-08-23 18:32