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.
Bevor wir direkt mit dem Sortierprozess beginnen, schauen wir uns ein paar Konzepte an -
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 -
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.
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.
class nameOfclass implements Comparable<nameOfclass>
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.
compareTo(nameOfclass nameOfobject);
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.
Collections.sort(nameOfcollection);
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.
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); } }
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]
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!