Java中的地图不是从“集合”接口继承的,尽管在大多数在线“教程”中,地图与集合、列表和队列是在同一类别中解释的。
这些地图仍然属于集合框架吗?
发布于 2012-02-15 16:04:34
该集合的最佳描述位于Java Collection Tutorial的开头。
集合-有时称为容器-只是将多个元素分组到单个单元中的对象。集合用于存储、检索、操作和通信聚合数据。通常,它们表示形成自然组的数据项,例如扑克牌(卡片的集合)、邮件文件夹(字母的集合)或电话簿(姓名到电话号码的映射)。
此外,本教程还列出了核心集合接口,所有这些接口都遵循上述范例:
下表描述了核心集合接口:
集合-集合层次结构的根。集合表示一组称为其元素的对象。Collection接口是所有集合实现的最小公分母,用于传递集合并在需要最大通用性时对其进行操作。某些类型的集合允许重复的元素,而其他类型的集合则不允许。一些是有序的,另一些是无序的。Java平台没有提供该接口的任何直接实现,但提供了更具体的子接口的实现,比如Set和List。另请参阅集合接口部分。
Set -不能包含重复元素的集合。此接口对数学集合抽象进行建模,并用于表示集合,例如包含扑克牌的卡片、组成学生时间表的课程或在机器上运行的过程。另请参见设置接口部分。
序列列表( List )-有序集合(有时称为序列)。列表可以包含重复的元素。列表的用户通常对每个元素在列表中的插入位置有精确的控制,并且可以通过元素的整数索引(位置)来访问元素。如果您使用过Vector,那么您应该熟悉List的一般风格。另请参阅列表接口部分。
Queue -用于在处理之前保存多个元素的集合。除了基本的收集操作外,队列还提供附加的插入、提取和检查操作。
队列通常(但不一定)以FIFO (先进先出)方式对元素排序。其中的例外是优先级队列,它根据提供的比较器或元素的自然排序对元素进行排序。无论使用哪种排序,队列的头部都是通过调用remove或轮询来移除的元素。在FIFO队列中,所有新元素都插入到队列的尾部。其他类型的队列可以使用不同的放置规则。每个队列实现都必须指定其排序属性。另请参阅队列接口部分。
映射-将键映射到值的对象。映射不能包含重复的键;每个键最多可以映射到一个值。如果您使用过Hashtable,那么您已经熟悉了Map的基础知识。另请参见贴图界面部分。
因此,Map是一个集合,尽管它实际上并不一定要实现Collection接口。
发布于 2012-02-15 15:58:36
Map接口不是Collection接口的扩展。相反,接口从它自己的接口层次结构开始,用于维护键值关联。
发布于 2012-02-15 16:00:04
查看official tutorial,特别是Lesson: Interfaces
Java集合接口是
集合框架的基础。正如您在下图中看到的,核心集合接口形成了一个层次结构。

以及进一步的:
下表描述了核心集合接口:
Collection ...Set ...List ...Queue ...Map ...https://stackoverflow.com/questions/9289688
复制相似问题