Java-Programm zum Sortieren einer Karte nach Werten

In diesem Programm lernen Sie, eine bestimmte Karte nach Werten in Java zu sortieren.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:

  • Java Map-Schnittstelle
  • Java LinkedHashMap

Beispiel: Sortieren Sie eine Karte nach Werten

 import java.util.*; public class Main ( public static void main(String() args) ( // create a map and store elements to it LinkedHashMap capitals = new LinkedHashMap(); capitals.put("Nepal", "Kathmandu"); capitals.put("India", "New Delhi"); capitals.put("United States", "Washington"); capitals.put("England", "London"); capitals.put("Australia", "Canberra"); // call the sortMap() method to sort the map Map result = sortMap(capitals); for (Map.Entry entry : result.entrySet()) ( System.out.print("Key: " + entry.getKey()); System.out.println(" Value: " + entry.getValue()); ) ) public static LinkedHashMap sortMap(LinkedHashMap map) ( List  capitalList = new LinkedList(map.entrySet()); // call the sort() method of Collections Collections.sort(capitalList, (l1, l2) -> l1.getValue().compareTo(l2.getValue())); // create a new map LinkedHashMap result = new LinkedHashMap(); // get entry from list to the map for (Map.Entry entry : capitalList) ( result.put(entry.getKey(), entry.getValue()); ) return result; ) ) 

Ausgabe

 Schlüssel: Australien Wert: Canberra Schlüssel: Nepal Wert: Kathmandu Schlüssel: England Wert: London Schlüssel: Indien Wert: New Delhi Schlüssel: USA Wert: Washington

Im obigen Programm haben wir LinkedHashMapbenannte Hauptstädte erstellt. Auf der Karte werden die Länder und ihre jeweiligen Hauptstädte gespeichert.

Hier haben wir eine sortMap()Methode erstellt, die die Karte nimmt und die sortierte Karte zurückgibt.

Innerhalb der Methode haben wir zuerst eine Liste mit dem Namen capitalList aus den Kartenhauptstädten erstellt. Wir verwenden dann die sort()Methode Collections, um Elemente der Liste zu sortieren.

Die sort()Methode verwendet zwei Parameter: die zu sortierende Liste und einen Komparator . In unserem Fall ist der Komparator ein Lambda-Ausdruck.

 (l1, l2) -> l1.getValue().compareTo(l2.getValue())

Hier nimmt der Lambda-Ausdruck zwei benachbarte Elemente (l1 und l2) der Liste. Anschließend wurde die getValue()Methode verwendet, um den Wert abzurufen, und die compareTo()Methode, um zwei Werte zu vergleichen.

Nach der Operation erhalten wir die sortierte Liste CapitalList. Dann konvertieren wir einfach die Liste in das LinkedHashMapbenannte Ergebnis und geben es zurück.

Zurück in der main()Methode durchlaufen wir jedes Element in der Karte und drucken seinen Schlüssel und Wert.

Interessante Beiträge...