Java字典类中的单个键是否可以有多个值?
Raji
问问题
1875 次
4 回答
3
首先,关于字典类:该类被认为已过时,文档建议改用 Map。
您正在寻找的这种集合称为多图。您可以使用列表自己实现一个,但这很乏味。
您可能想要使用 Apache Collections 或 Google Collections 中的 MultiMap。虽然我个人是 apache 集合的粉丝,但它们并不真正支持泛型,因此 Google 多图可能更安全。
于 2009-06-27T05:43:51.700 回答
2
当然。使用列表作为值。
于 2009-06-27T04:38:32.093 回答
2
你应该看看 apache commons 集合中的 MultiMap 类
于 2009-06-27T04:41:03.750 回答
2
您可以使用常规Map
并将值设为Collection
s:
Map<Integer, List<String>> map = new HashMap<Integer, List<String>>();
map.put(0, Arrays.asList("foo", "bar"));
map.put(1, new ArrayList<String>());
map.get(1).add("blag");
或者您可以MultiMap
从Apache Commons Collections使用。
A
MultiMap
是Map
语义稍有不同的 a。将值放入映射中会将值添加到Collection
该键处的 a 中。获取一个值将返回 aCollection
,其中包含放入该键的所有值。例如:
MultiMap mhm = new MultiHashMap(); mhm.put(key, "A"); mhm.put(key, "B"); mhm.put(key, "C"); Collection coll = (Collection) mhm.get(key);
coll
将是一个包含“A”、“B”、“C”的集合。
(不幸的是,MultiMap
不使用泛型。)
于 2009-06-27T04:43:00.753 回答