我一直在想java.util中的Map.
为什么values()方法返回一个Collection而keySet和entrySet返回一个Set?
集合和集合的优点/缺点是什么?
集合保证给定条目只能存在一次.收藏品没有.由于Map在值方面没有唯一性保证,因此它们的集合根本不是集合,而是必须是集合.
这不是一个优点和缺点的问题 - 它是地图的键,值和条目代表重要的.
地图中的键是唯一的
a Map中的键是唯一的 - 也就是说,a中不会有重复的键Map.Collection确保不存在重复的A 是a Set.
因此,Set通过该keySet方法返回密钥.
地图中的值不一定是唯一的
在另一方面,该值的Map并不一定是唯一的.
例如,我们可以在地图中有一个条目,其中键值"fruit"映射到该值"apple",并且还有另一个条目,其中键"computer"映射到该值"apple":
map {
key:"fruit" -> value:"apple"
key:"computer" -> value:"apple"
}
Run Code Online (Sandbox Code Playgroud)
允许在地图中具有重复值.
因此,我们不能使用a Set,因为必须所有条目都是唯一的.a值的一个很好的选择Map是返回一个普通的,Collection因为它不会对值的含义施加任何限制.
地图中的条目也是唯一的
这些条目Map是唯一的 - 它们是键和值的组合,由Map.Entry对象表示.由于此键值对是唯一的,因此Set通过该entrySet方法返回.
进一步阅读
| 归档时间: |
|
| 查看次数: |
502 次 |
| 最近记录: |