English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Programm lernen Sie, wie man eine gegebene Abbildung in Java nach Wert sortiert.
import java.util.*; public class SortMap { public static void main(String[] args) { LinkedHashMap<String, String> capitals = new LinkedHashMap<>(); capitals.put("Nepal", "Kathmandu"); capitals.put("Indien", "Neu Delhi"); capitals.put("Vereinigte Staaten", "Washington"); capitals.put("England", "London"); capitals.put("Australien", "Canberra"); Map<String, String> result = sortMap(capitals); for (Map.Entry<String, String> entry : result.entrySet()) { System.out.print(" Schlüssel: ", + entry.getKey()); System.out.println(" Wert: ", + entry.getValue()); } } public static LinkedHashMap<String, String> sortMap(LinkedHashMap<String, String> map) { List<Map.Entry<String, String>> capitalList = new LinkedList<>(map.entrySet()); Collections.sort(capitalList, (o1, o2) -> o1.getValue().compareTo(o2); LinkedHashMap<String, String> result = new LinkedHashMap<>(); for (Map.Entry<String, String> entry : capitalList) { result.put(entry.getKey(), entry.getValue()); } return result; } }
Wenn dieses Programm ausgeführt wird, ist die Ausgabe:
Schlüssel: Australien Wert: Canberra Schlüssel: Nepal Wert: Kathmandu Schlüssel: England Wert: London Schlüssel: India Wert: New Delhi Schlüssel: United States Wert: Washington
Im obigen Programm konvertieren wir LinkedHashMap Länder/Die Regionen und ihre jeweiligen Hauptstädte werden im Variablen capitals gespeichert.
Wir haben eine Methode sortMap(), die eine DoublyLinkedList annimmt und eine sortierte DoublyLinkedList zurückgibt.
Innerhalb der Methode konvertieren wir den HashMap in eine Liste capitalList. Dann verwenden wir die sort() Methode, die eine Liste und einen Comparator annimmt.
In unserem Beispiel ist der Comparator (o1,o2)-> o1.getValue().compareTo(o2.getValue()) zwei Listen o1und o2verwendeten Lambda-Ausdruck zur Wertvergleiche.
Nach der Berechnung erhalten wir die sortierte Liste capitalList. Dann müssen wir nur die Liste in einen LinkedHashMap umwandeln und zurückgeben.
In der main() Methode iterieren wir über jedes Element im Map und geben den Schlüssel und den Wert aus.