8

这个问题更多的是关于 Java 开发人员的设计实现。我想知道(如果有任何我想不出的重要原因)为什么Keyset()返回 set-view 但values()返回Collection-view. 为什么不Values()ValueSetwith的形式返回set-view。如果需要,我可以强制设置,但为什么选择它的方式。

也许这有助于决定在构建我们的自定义数据结构时使用哪些数据结构。

Map<String, Integer> map = new HashMap<String,Integer>();
map.put("hello",1);
map.put("world",2);

Collection <Integer> i = map.values();
Set<String> s = map.keySet();
4

1 回答 1

16

根据定义,Map表单 a的键Set是唯一键的集合。但是a 的值Map可以是重复的。因此,a 中的不同键可能具有相同的值Map

于 2014-01-03T21:16:57.500 回答