Heim  >  Artikel  >  Java  >  Wie sortiere ich Java-Sammlungen: Komparator-, vergleichbare und Lambda-Ausdrücke?

Wie sortiere ich Java-Sammlungen: Komparator-, vergleichbare und Lambda-Ausdrücke?

Susan Sarandon
Susan SarandonOriginal
2024-11-07 22:49:02680Durchsuche

How to Sort Java Collections: Comparator, Comparable, and Lambda Expressions?

Java-Sammlungen sortieren

Um eine Java-Sammlung zu sortieren, sind je nach den spezifischen Anforderungen mehrere Ansätze zu berücksichtigen. Eine gängige Option ist die Verwendung eines Comparators.

Verwendung eines Comparators:

Erstellen Sie eine Comparator-Klasse, die die Comparator-Schnittstelle implementiert. Innerhalb der Methode „compare()“ definieren Sie die Logik zum Vergleichen von Objekten. Um beispielsweise ein CustomObject nach seinem ID-Feld zu sortieren:

Comparator<CustomObject> comparator = new Comparator<CustomObject>() {
    @Override
    public int compare(CustomObject left, CustomObject right) {
        return left.getId() - right.getId();
    }
};

Verwenden Sie dann den Comparator, um die Sammlung mit Collections.sort() zu sortieren:

Collections.sort(list, comparator);

Alternativ, wenn Ihr CustomObject implementiert Comparable, Sie können Collections.sort(list) direkt verwenden.

Mit JDK 8 Lambda-Ausdrücken:

Lambda-Ausdrücke wurden in JDK 8 eingeführt und bieten eine praktische Möglichkeit um Komparatoren zu schreiben:

Collections.sort(list, (left, right) -> left.getId() - right.getId());

Kurzschreibweise mit JDK 8:

Für einfache Szenarien kann die folgende Kurzschreibweise zum Sortieren nach einem bestimmten Feld verwendet werden:

list.sort(Comparator.comparing(CustomObject::getId));

Letztendlich hängt der beste Ansatz zum Sortieren einer Java-Sammlung von den spezifischen Anforderungen und der verwendeten Java-Version ab.

Das obige ist der detaillierte Inhalt vonWie sortiere ich Java-Sammlungen: Komparator-, vergleichbare und Lambda-Ausdrücke?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn