我正在official website阅读Java Collection Framework
有一点 - "地图不是真正的集合"
这是什么意思 ?为什么地图不是Collection的一部分?
然后我才知道Map没有扩展Collection。这样做的目的是什么?如果Map是Collection的一部分会更好,不是吗?
请参考以下层次结构收集框架: -
答案 0 :(得分:2)
Map
不能是Collection
,因为它们的语义不一致。最接近"收藏"对于Map
,它被视为Set<Map.Entry<K,V>>
。您可以通过调用map.entrySet()
将其作为地图的集合视图获取;但是,如果Map
本身实现了完整的Collection
API,则会造成更多麻烦而不是好处。例如,方法remove(Object)
在Collection
和Map
中定义,但具有不兼容的语义。这些方法的名称必须被扭曲,影响所有Collection
,只是为了适应Map
的尴尬案例。