您可以改用Multimap。它在列表中为一个键保留多个值。在commons-
collection和Guava中有实现。
Multimap<String, String> multimap = ArrayListMultimap.create(); multimap.put("ducks", "Huey");multimap.put("ducks", "Dewey");multimap.put("ducks", "Louie");Collection<String> ducks = multimap.get("ducks");System.out.println(ducks); // [Huey, Dewey, Louie]这类似于使用值是列表的Hashmap,但是不必显式创建列表。
自己动手做的同一示例如下所示:
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]请注意,您可以将Multimap用作构建器,并对其调用asMap以返回地图。



