So sortieren Sie eine Karte nach Wert in Java

So sortieren Sie eine Karte nach Wert in Java

In Java, “Karten”Sind eine leistungsstarke Datenstruktur zum Speichern von Daten. Eine Karte kann leicht den geeigneten Wert für einen bestimmten Schlüssel bestimmen, da die Karte Daten in Schlüsselwertpaaren speichert, wobei jeder Schlüssel einen entsprechenden eindeutigen Wert hat. Um diese Werte aus einer Karte abzurufen, ist ein eindeutiger Schlüssel erforderlich. Die Werte können jedoch für zwei eindeutige Schlüssel gleich sein.

In diesem Artikel wird die Methode zur Sortierung einer Karte nach Wert in Java erläutert.

So sortieren Sie eine Karte nach Wert in Java?

In Java kann eine Karte nach Wert sortiert werden:

  • Verwenden Sie Sort () Methode
  • Verwenden Sie SortEd () Methode

Wir werden jetzt jede der genannten Methoden nacheinander ansehen!

Methode 1: Sortieren Sie eine Karte nach Wert in Java mithilfe der Sort () -Methode

Der "Sortieren()Methode ist eine statische Methode der Java -Sammlungsklasse. Diese Methode kann nur auf Listen wie LinkedList, ArrayList usw. angewendet werden.

In diesem Abschnitt wird die Methode gezeigt, um die Werte von Kartenelementen in aufsteigender und absteigender Reihenfolge zu sortieren.

Beispiel 1: Sortieren Sie eine Karte nach Wert in aufsteigender Reihenfolge

In diesem Beispiel sortieren wir die Werte der Karte in aufsteigender Reihenfolge mit der “vergleichen byValue ()" und das "Sortieren()”. Wir werden zuerst eine ganzzahlige Karte genannt "namens" erstellen "Karte" folgendermaßen:

Karte map = new HashMap ();

Anschließend setzen wir die Werte in die erstellte Karte in Form von Schlüsselwertpaaren ein:

Karte.Put (7, 10);
Karte.put (1, 1000);
Karte.put (5, 380);
Karte.Put (3, 700);

Drucken Sie die Karte als Schlüsselwertpaar mit der “druckenfür jede”Schleife. Die Foreach -Schleife wird nur wiederholt für das Durchschleifen jedes Elements in der Karte verwendet. Wir haben eine "hinzugefügt"Lambda -Ausdruck”(->) Mit der Schleife, um mehrere Zeilen im Quellcode zu vermeiden:

Karte.foreach ((k, v)-> System.aus.println (k + ":" + v));

Dann drucken wir die folgende Anweisung mit der “drucken wir“System.aus.println ()" Methode:

System.aus.println ("die Werte nach Sortieren:");

Um die Einträge mit dem zu sortierenSortieren()"Methode, wir müssen zunächst eine Liste mit dem von der" zurückgegebenen Einträge erstellen "Einstieg ()" Methode:

Aufführen> nlist = new ArrayList (Karte.EinstiegSet ());

Jetzt werden wir die Sort () -Methode nennen, indem wir die „übergeben“vergleichen byValue ()Methode als Argument, um den Vergleich der Werte des Eintrags zu ermöglichen:

Nliste.sortieren (Eintrag.vergleichen byValue ());

Zuletzt drucken wir die sortierten Werte der Karte mit der Foreach -Schleife:

Nliste.foreach (System.out :: println);

Notiz: Während Sie das obige Beispiel ausführen.

Die Ausgabe zeigt, dass die Karte in aufsteigender Reihenfolge nach Wert sortiert wird:

Beispiel 2: Sortieren Sie eine Karte nach Wert in absteigender Reihenfolge

In diesem Beispiel sortieren wir die Werte einer Karte mit dem “Sortieren()Methode und “vergleichen byValue ()Methode, um die Elemente der Karte in absteigender Reihenfolge zu sortieren. Erstens erstellen wir hier eine ganzzahlige Karte, um int -Werte zu speichern:

Karte map = new HashMap ();

Dann werden wir die Daten in einer Karte in Form von Schlüsselwertpaaren hinzufügen:

Karte.Put (7, 10);
Karte.put (1, 100);
Karte.Put (5, 3800);
Karte.put (3, 70);

Wir erstellen eine Liste, um die Kartenelemente zu sortieren:

Aufführen> nlist = new ArrayList (Karte.EinstiegSet ());

Hier werden wir das nennen "vergleichen byValue ()"Methode durch Übergabe eines"umgekehrte Reihenfolge()"Methode der"Vergleicher”Klasse als Argumentation. Es gibt die Kartenwerte in umgekehrter Reihenfolge zurück:

Nliste.sortieren (Eintrag.Vergleich von ByValue (Vergleicher.umgekehrte Reihenfolge());

Drucken Sie die sortierten Werte mit verwenden “für jede”Schleife:

Nliste.foreach (System.out :: println);

Wie Sie sehen können, sind die Kartenwerte in der absteigenden Reihenfolge sortiert:

Sehen wir uns eine andere Methode zum Sortieren von Kartenelementen nach Wert an.

Methode 2: Sortieren Sie eine Karte nach Wert in Java mithilfe der Sorted () -Methode

Der zweite Ansatz besteht darin, die Karte nach Werten mithilfe der Stream -API zu sortieren. Die Stream -API enthält eine Reihe von Methoden, mit denen eine Objektsammlung verarbeitet werden kann, wie z. B. Stream () und sortiert ().

In diesem Abschnitt drucken wir die Karte auch nach Werten sowohl in aufsteigender als auch in absteigender Reihenfolge.

Beispiel 1: Sortieren Sie eine Karte nach Wert in aufsteigender Reihenfolge

In diesem Beispiel wird der gleiche Kartenwert verwendet und sie in aufsteigender Reihenfolge unter Verwendung der "sortiert"sortiert ()”Methode der Stream -API. Wir werden das nutzen “Strom()Methode, um das Eintragssatz der Karte in einen Stream zu verwandeln und dann die Karte mit der "zu sortieren" sortierensortiert ()" Methode.

Der "vergleichen byValue ()”Methode der Karte liefert die“sortiert ()Methode mit zusätzlichen Informationen über die natürliche Sortierreihenfolge. Zuletzt die “für jedeDie Schleife kann verwendet werden, um auf alle Elemente zuzugreifen und die Schlüsselwertpaare einzeln zu erhalten:

Strom> sortiert = map.Einstieg ().Strom()
.sortiert (Karte.Eintrag.vergleichen byValue ());

Die Ausgabe zeigt, dass die Karte mit der Methode SortED () nach Wert in aufsteigender Reihenfolge sortiert wird:

Beispiel 2: Sortieren Sie eine Karte nach Wert in absteigender Reihenfolge

Um die Karte nach Wert in absteigender Reihenfolge zu sortieren, verwenden wir die “vergleichen byValue ()"Methode durch Übergabe"umgekehrte Reihenfolge()Methode als Argument für die “sortiert ()" Methode:

Strom> sortiert = map.Einstieg ().Strom() .sortiert (Karte.Eintrag.Vergleich von ByValue (Vergleicher.umgekehrte Reihenfolge()));

Wie Sie sehen können, das “sortiert ()Die Methode hat den Wert der Karte in absteigender Reihenfolge angeordnet:

Wir haben alle wesentlichen Informationen zur Sortierung einer Karte nach Wert bereitgestellt.

Abschluss

Verwenden Sie die “zum Sortieren einer Karte nach Wert in Java die“Sortieren()”Methode und die“sortiert ()Methode mit der Vergleichs -Value () -Methode. Diese Methoden sortieren die Werte in aufsteigender Reihenfolge, während Sie für absteigender Reihenfolge die Methode ReverseOrder () der Komparatorklasse als Argument der angegebenen Methoden aufrufen müssen. Dieser Artikel umfasste verschiedene Java -Methoden zum Sortieren einer Karte nach Wert.