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

时间:2014-06-23 16:34:14

标签: java collections map

我在Java Collections教程中遇到过这个:

"另请注意,层次结构由两个不同的树组成 - Map不是真正的Collection 。"

这让我很困惑,因为我一直以为地图是一个集合。任何人都可以对这意味着什么发光?

什么是" true"收集,为什么地图不是其中之一?

3 个答案:

答案 0 :(得分:8)

Map不是 true Collection,因为它不会扩展Collection接口。除此之外,它是一个概念集合。

答案 1 :(得分:0)

Map是键和值之间的关联。其他(真实)集合是......类似值的集合。在同一界面下整合如此不同的数据结构几乎是不可能的。这就是Collections实现接口Colletion并映射实现接口Map

的原因

答案 2 :(得分:0)

Map不是真Collection。因为Collection接口与Map接口很大程度上不兼容。如果Map延长Collection,那么add(Object)方法会做什么?

这两个接口具有非常不同的语义。如果您需要将地图的值或键作为集合,则可以始终使用keySet() / values()

请参阅Java Collections API Design FAQ: