我有几个临时的TreeMaps,我想合并成一个超级TreeMap,一个联盟的较小的TreeMaps。
TreeMaps的泛型类型是
TreeMap<String, Set<Integer>>当我试着打电话给
SuperTreeMap.addALL(temp)我收到以下错误
Error: cannot find symbol.发布于 2018-04-24 12:34:59
您不能将所有的值作为值与putAll结合使用。每个新的Set将替换现有的一个。你必须做很多事情:
Map<String, Set<Integer>> map = new TreeMap<>();
Map<String, Set<Integer>> map1 = new TreeMap<>();
Map<String, Set<Integer>> map2 = new TreeMap<>();
map1.put("one", new HashSet<>());
map1.get("one").add(1);
map1.get("one").add(2);
map1.get("one").add(3);
map1.put("two", new HashSet<>());
map1.get("two").add(1);
map1.get("two").add(2);
map1.get("two").add(3);
map2.put("one", new HashSet<>());
map2.get("one").add(4);
map2.get("one").add(5);
map2.get("one").add(6);
map2.put("two", new HashSet<>());
map2.get("two").add(4);
map2.get("two").add(5);
map2.get("two").add(6);
for (Map<String, Set<Integer>> m : Arrays.asList(map1, map2)) {
for (Map.Entry<String, Set<Integer>> entry : m.entrySet()) {
if (!map.containsKey(entry.getKey()))
map.put(entry.getKey(), new HashSet<>());
map.get(entry.getKey()).addAll(entry.getValue());
}
}https://stackoverflow.com/questions/49992960
复制相似问题