为什么地图不是真正的集合?

时间:2014-08-31 13:45:21

标签: java oop collections map

我正在official website阅读Java Collection Framework 有一点 - "地图不是真正的集合"
这是什么意思 ?为什么地图不是Collection的一部分?
然后我才知道Map没有扩展Collection。这样做的目的是什么?如果Map是Collection的一部分会更好,不是吗? 请参考以下层次结构收集框架: -
enter image description here

1 个答案:

答案 0 :(得分:2)

Map不能是Collection,因为它们的语义不一致。最接近&#34;收藏&#34;对于Map,它被视为Set<Map.Entry<K,V>>。您可以通过调用map.entrySet()将其作为地图的集合视图获取;但是,如果Map本身实现了完整的Collection API,则会造成更多麻烦而不是好处。例如,方法remove(Object)CollectionMap中定义,但具有不兼容的语义。这些方法的名称必须被扭曲,影响所有Collection,只是为了适应Map的尴尬案例。