1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("bonjour", Arrays.asList("salut","goodMorning","coucou"));
map.put("bye", Arrays.asList("bonneNuit"));
map.put("bonsoir", Arrays.asList("hello","goodEvening"));
Map<String, List<String>> sortedMap = map.entrySet()
.stream()
.sorted((e1, e2)-> e2.getValue().size()-e1.getValue().size()) // la formule de tri est ici (décroissant par nombre de valeurs dans la la liste (value))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue,
(e1, e2) -> e1,
LinkedHashMap::new)); // on créé une LinkedHashMap pour conserver le tri.
System.out.println(sortedMap); |
Partager