Heim  >  Artikel  >  Java  >  Sortieren von LinkedHashMap nach Wert mithilfe der Comparable-Schnittstelle in Java

Sortieren von LinkedHashMap nach Wert mithilfe der Comparable-Schnittstelle in Java

WBOY
WBOYnach vorne
2023-08-26 09:53:061604Durchsuche

Sortieren von LinkedHashMap nach Wert mithilfe der Comparable-Schnittstelle in Java

LinkedHashMap ist eine allgemeine Klasse, die zur Implementierung der Map-Schnittstelle verwendet wird. Darüber hinaus handelt es sich um eine Unterklasse der HashMap-Klasse, sodass sie alle Methoden der HashMap-Klasse verwenden und ähnliche Operationen ausführen kann.

Java bietet mehrere Methoden zum Sortieren von LinkedHashMap. In diesem Artikel erfahren Sie, wie Sie es mithilfe der Comparable-Schnittstelle erstellen und nach seinem Wert sortieren.

Programm zum Sortieren von LinkedHashMap nach Wert

Bevor wir direkt mit dem Sortierprozess beginnen, schauen wir uns ein paar Konzepte an -

LinkedHashMap

Wie bereits erwähnt, erweitert die LinkedHashMap-Klasse die HashMap-Klasse, um die Map-Schnittstelle zu implementieren. Es verwaltet Schlüssel-Wert-Paare. Der Schlüssel ist ein Objekt, mit dem der ihm zugeordnete Wert abgerufen und empfangen wird. Es speichert die zugeordneten Elemente in der LinkedList in der Einfügereihenfolge, d. h. es behält die Einfügereihenfolge der Elemente bei. Darüber hinaus wird jedes Mal, wenn wir seine Elemente zurückgeben, diese in der Einfügereihenfolge gedruckt.

Die allgemeine Syntax von LinkedHashMap lautet wie folgt -

Grammatik

LinkedHashMap< TypeOfKey, TypeOfValue > nameOfMap = new LinkedHashMap<>();

In der obigen Syntax:

TypeOfKey – gibt den Datentyp des Schlüssels an.

TypeOfValue − Gibt den Datentyp des Werts an, der in der Karte gespeichert werden soll.

nameOfMap − Geben Sie Ihrer Karte einen passenden Namen.

Ähnliche Schnittstelle

Java bietet eine Vielzahl von Sortieralgorithmen und -methoden, die uns beim Sortieren von Arrays, Listen oder beliebigen Sammlungen helfen können. Die vergleichbare Schnittstelle ist eine sehr nützliche zusätzliche Methode, wenn wir benutzerdefinierte Objekte in natürlicher Reihenfolge sortieren möchten. Es sortiert beispielsweise Zeichenfolgen lexikografisch und Zahlen numerisch. Diese Schnittstelle ist im Paket „java.lang“ verfügbar.

Grammatik

class nameOfclass implements Comparable<nameOfclass>

compareTo()-Methode

Die Comparable-Schnittstelle definiert nur eine Methode namens „CompareTo“, die überschrieben werden kann, um eine Sammlung von Objekten zu sortieren. Es bietet die Möglichkeit, Objekte einer Klasse mit sich selbst zu vergleichen. Es gibt 0 zurück, wenn das „this“-Objekt gleich dem übergebenen Objekt ist, einen positiven Wert, wenn das „this“-Objekt größer ist, und andernfalls einen negativen Wert.

Grammatik

compareTo(nameOfclass nameOfobject); 

Collections.sort()-Methode

Die Klasse „Collections“ der Sammlungsschnittstelle stellt eine statische Methode namens „Collections.sort()“ bereit, die die Elemente einer angegebenen Sammlung (z. B. ArrayList oder LinkedList) sortieren kann. Es ist im Paket „java.util“ verfügbar.

Grammatik

Collections.sort(nameOfcollection);

Algorithmus

  • Schritt 1 – Erstellen Sie eine Klasse „Cart“, die die Comparable-Schnittstelle implementiert. Deklarieren Sie innerhalb der Klasse zwei Variablen und definieren Sie einen Konstruktor, der zwei Parameter „Artikel“ und „Preis“ vom Typ String bzw. Float mit doppelter Genauigkeit akzeptiert.

  • Schritt 2 – Darüber hinaus konvertieren wir die Daten des Objekts mithilfe der Methode „toString()“ in einen String. Definieren Sie dann die Methode „compareTo“ mit einem Objekt der Klasse „Cart“ als Parameter, um das Objekt „this“ mit dem neu erstellten Objekt zu vergleichen.

  • Schritt 3 – Deklarieren Sie nun in der main()-Methode ein „Cart“-Objekt der LinkedHashMap-Klasse mit dem Namen „obj“ und speichern Sie die Details des Objekts mithilfe der darin gespeicherten integrierten Methode „put()“. „Artikel“ ist der Schlüssel und der entsprechende Wert ist „Preis“.

  • Schritt 4 – Definieren Sie abschließend eine ArrayList-Sammlung mit dem Namen „SrtList“, um die sortierten Elemente der LinkedHashMap zu speichern. Übergeben Sie nun „obj“ als Parameter an die Methode „Collections.sort()“, um den Sortiervorgang nach Wert durchzuführen.

Beispiel

import java.util.*;
import java.lang.*;
public class Cart implements Comparable<Cart> {
   String item;
   double price;
   Cart(String item, double price) {
      // this keyword shows these variables belongs to constructor
      this.item = item; 
      this.price = price;
   }
   // method for converting object into string
   public String toString() {
      return "Item: " + item + ", " + "Price: " + price;
   }
   public String getName() { 
      // to retrieve item name
      return this.item;
   }
   // overriding method
   public int compareTo(Cart comp) {
      if(this.price > comp.price) {
         return 1;
      } else {
         return -1;
      }
   }
   public static void main(String[] args) {
      // Declaring collection LinkedHashMap
      LinkedHashMap<String, Cart> obj = new LinkedHashMap<>();
      // Adding object to the obj map
      Cart obj1 = new Cart("Rice", 59);
      obj.put(obj1.getName(), obj1);
      Cart obj2 = new Cart("Milk", 60);
      obj.put(obj2.getName(), obj2);
      Cart obj3 = new Cart("Bread", 45);
      obj.put(obj3.getName(), obj3);
       // printing details obj map in unsorted order
      System.out.println("Elements of the map: ");
      for (String unKey : obj.keySet()) {
         System.out.println(obj.get(unKey));
      }
      List<Cart> SrtList = new ArrayList<>(obj.values());
      Collections.sort(SrtList); 
      // Sorting the object
      // printing details of obj map in sorted order
      System.out.println("Elements of the newly sorted map: ");
      System.out.println(SrtList);
   }
}

Ausgabe

Elements of the map: 
Item: Rice, Price: 59.0
Item: Milk, Price: 60.0
Item: Bread, Price: 45.0
Elements of the newly sorted map: 
[Item: Bread, Price: 45.0, Item: Rice, Price: 59.0, Item: Milk, Price: 60.0]

Fazit

In der Java 1.0-Version wurde erstmals eine ähnliche Schnittstelle eingeführt und im Paket „java.lang“ bereitgestellt. In diesem Artikel haben wir die Verwendung von LinkedHashMap und der Comparable-Schnittstelle bei Sortiervorgängen untersucht.

Das obige ist der detaillierte Inhalt vonSortieren von LinkedHashMap nach Wert mithilfe der Comparable-Schnittstelle in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen