Ich habe eine Map<String,Integer>
und es von Wert wie folgt sortiert ist:Split Karte in zwei Listen
set = map.entrySet();
list = new ArrayList<Map.Entry<String, Integer»(set);
Collections.sort(list, (o1, o2) -> (o2.getValue()).compareTo(o1.getValue()));
Ich habe bereits eine sortierte Liste mit ganzen Zahlen von dieser Karte:
word_used = new ArrayList<Integer>(map.values()
.stream()
.sorted()
.collect(Collectors.toList()));
Collections.reverse(word_used);
Aber wie kann ich eine String-Liste, die gleich Map (nach Wert) sortiert wird?
Ich meine, wenn ich eine Karte mit Hand haben:
map.put("eggs",1500);
map.put("echo",150);
map.put("foo",320);
map.put("smt",50);
und sortieren es mögen:
eggs : 1500
foo : 320
echo : 150
smt : 50
I 2 Listen erhalten müssen:
eggs
foo
echo
smt
und
1500
320
150
50
Würde 'word_list = new Arraylist (map.keySet() .stream() .sorted() .collect (Collectors.toList()));' Arbeit? –
jr593
Beachten Sie, dass es irreführend ist zu sagen, dass die 'Map' sortiert ist. Das Konstruieren und Sortieren einer "Liste" der "Map" -Einträge hat keine Auswirkung auf die Iterationsreihenfolge der Auflistungsansichten dieser Map. Sie haben nur eine sortierte 'Liste' - die trotzdem nützlich sein kann. –