1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Map<String, List<String>> map = new HashMap<>();
map.put("a", Arrays.asList("A", "B", "C", "D"));
map.put("b", Arrays.asList("Z"));
map.put("c", Arrays.asList("X", "Y"));
Map<String,String> res = map.entrySet().stream()
.collect(HashMap::new,
(m, e) -> e.getValue().forEach(v -> m.put(v, e.getKey())),
Map::putAll);
System.out.println(res);
Map<String,String> res2 = map.entrySet().stream()
.flatMap(e-> e.getValue().stream().map(v-> new AbstractMap.SimpleEntry<String,String>(v,e.getKey())))
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));
System.out.println(res2);
Map<String,String> res3 = map.entrySet().stream()
.flatMap(e-> e.getValue().stream().collect(Collectors.toMap(v-> v, v-> e.getKey()))
.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));
System.out.println(res3); |
Partager