Map<String, List<String>> map = new HashMap<>();
map.put("ducks", new ArrayList<String>());
map.get("ducks").add("Huey");
map.get("ducks").add("Dewey");
map.get("ducks").add("Louie");
// or as an alternative to the prev 4 lines:
// map.put("ducks", new ArrayList<String>(
// new String[] {"Huey", "Dewey", "Louie"}));
Collection<String> ducks = map.get("ducks");
System.out.println(ducks); // [Huey, Dewey, Louie]
3条答案
按热度按时间3vpjnl9f1#
您可以使用Multimap来代替。它在列表中为一个键保存多个值。在commons-collections和Guava中有实现。
这类似于使用哈希Map,其中的值是列表,但您不必显式地创建列表。
用自己动手的方式完成的相同示例如下所示:
请注意,您可以将Multimap用作构建器,并在其上调用asMap以返回一个Map。
w1e3prcc2#
尝试
HashMap<Key, List<Value>>
您将需要管理列表,如果列表不存在则创建列表,如果需要则添加列表。Guava还提供了Multimap实现
dced5bon3#
这样做
或者您甚至可以使用Guava的多Map