【问题标题】:Why A Map is not a true Collection? [duplicate]为什么地图不是真正的集合? [复制]
【发布时间】:2014-08-31 13:45:20
【问题描述】:

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

【问题讨论】:

  • 很好。重复项是彼此的重复项。

标签: java oop collections map


【解决方案1】:

Map 不能是 Collection,因为它们的语义不一致。对于Map,最接近“收藏性”的是当它被视为Set<Map.Entry<K,V>> 时。您可以通过调用map.entrySet() 将其作为地图的集合视图;但是,如果Map 本身实现了完整的Collection API,则麻烦多于好处。例如,remove(Object) 方法在CollectionMap 中都有定义,但语义不兼容。此类方法的名称必须变形,影响所有 Collections,以适应 Map 的尴尬情况。

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 2020-09-04
    • 2016-09-06
    • 2021-01-28
    相关资源
    最近更新 更多