字典类

Java字典类中是否可以为单个键设置多个值?

首先,关于字典类:该类被认为是obselete,文档建议使用Map。

您正在寻找的这种集合称为多图。 您可以使用列表自己实现一个,但这很乏味。

您可能希望使用Apache Collections或Google Collections中的MultiMap。 虽然我个人是apache集合的粉丝,但他们并不真正支持generics,因此Google多图可能更安全。

当然。 使用列表作为值。

您可以使用常规Map并将值设置为Collection s:

 Map> map = new HashMap>(); map.put(0, Arrays.asList("foo", "bar")); map.put(1, new ArrayList()); map.get(1).add("blag"); 

或者您可以使用Apache Commons Collections中的 MultiMap

MultiMap是一种语义略有不同的Map 。 将值放入地图会将值添加到该键的Collection 。 获取值将返回一个Collection ,其中包含放入该键的所有值。

例如:

 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不使用generics。)