我在Java Collections教程中遇到过这个:
"另请注意,层次结构由两个不同的树组成 - Map不是真正的Collection 。"
这让我很困惑,因为我一直以为地图是一个集合。任何人都可以对这意味着什么发光?
什么是" true"收集,为什么地图不是其中之一?
答案 0 :(得分:8)
Map
不是 true Collection
,因为它不会扩展Collection
接口。除此之外,它是一个概念集合。
答案 1 :(得分:0)
Map是键和值之间的关联。其他(真实)集合是......类似值的集合。在同一界面下整合如此不同的数据结构几乎是不可能的。这就是Collections实现接口Colletion
并映射实现接口Map
。
答案 2 :(得分:0)
Map
不是真Collection
。因为Collection
接口与Map
接口很大程度上不兼容。如果Map
延长Collection
,那么add(Object)
方法会做什么?
这两个接口具有非常不同的语义。如果您需要将地图的值或键作为集合,则可以始终使用keySet()
/ values()
。