Java集合框架中没有将Map作为集合的一部分。

10

如果您查看集合框架,您会发现以下内容,但Map不在接口列表中。尽管我们谈论Map时说它是集合框架的一部分,但如果Map是集合框架的一部分,那么为什么它不在接口列表中呢。

 java.util
Interface Collection

All Known Subinterfaces:
    BeanContext, BeanContextServices, List, Set, SortedSet

All Known Implementing Classes:
    AbstractCollection, AbstractList, AbstractSet, ArrayList, BeanContextServicesSupport, BeanContextSupport, HashSet, LinkedHashSet, LinkedList, TreeSet, Vector 

1
类似的文章:https://dev59.com/DW025IYBdhLWcg3w9qyQ - Lorand Bendig
5个回答

18
"

集合框架(Collection Framework)" 和 "Collection 接口" 不是同一回事。

虽然你可以把一个 Map 当做一组条目(entry)的集合,但 Map 并不直接支持这种方式 - 你可以使用 entrySet 方法获取到一组条目的集合(set)。

但本质上,你需要区分 "集合框架(Collection Framework)" 和 "Collection 接口"。

"

12

Maps(映射)使用键/值对(key/value pairs),而其他集合只使用(just values)。Map将键映射到值,它允许以键的集合、值的集合以及键-值映射的集合来查看其内容。

请查看以下链接,该答案来自Oracle: https://docs.oracle.com/javase/tutorial/collections/


4
因为Map是三个集合:键、值和键值对。
很难决定哪一个应该成为默认的迭代方式,因此它实现了三次接口(keySet()、values()和entrySet())。

4

它是集合框架的一部分,但不实现java.util.Collection接口。

它是层次结构的一个不同分支。如果您愿意,可以将其视为与Collection接口相同级别的层次结构。

Collection接口由(是)类似List的集合实现,而Map由(是)键值对类型的集合实现。


1

Map 接口不是 Collection 接口的扩展。然而,它是一种用于保存数据集合的结构。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接