„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie sortiere ich eine Java-Sammlung nach einem bestimmten Feld?

Wie sortiere ich eine Java-Sammlung nach einem bestimmten Feld?

Veröffentlicht am 09.11.2024
Durchsuche:329

How to Sort a Java Collection by a Specific Field?

Benutzerdefiniertes Sortieren einer Java-Sammlung nach einem bestimmten Feld

In Java besteht eine häufige Aufgabe darin, Daten in einer Sammlung basierend auf einem benutzerdefinierten Kriterium zu organisieren. Angenommen, wir haben eine Sammlung von Objekten mit einem ID-Feld und möchten sie nach diesem Feld sortieren.

Um dies zu erreichen, können wir einen Komparator verwenden, der es uns ermöglicht, unsere eigene Logik für die Sortierung anzugeben. So geht's:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

class CustomObject implements Comparable {
    private int id;
    
    public int getId() { return id; }
    
    @Override
    public int compareTo(CustomObject other) {
        return this.id - other.id;
    }
}

public class CustomCollectionSorting {

    public static void main(String[] args) {
        // Initialize the list of CustomObject
        List list = new ArrayList();
        list.add(new CustomObject(3));
        list.add(new CustomObject(5));
        list.add(new CustomObject(1));
        list.add(new CustomObject(2));

        // Create a comparator
        Comparator comparator = new Comparator() {
            @Override
            public int compare(CustomObject left, CustomObject right) {
                return left.getId() - right.getId();
            }
        };
        
        // Sort the collection
        Collections.sort(list, comparator);

        // Display the sorted list
        System.out.println(list);
    }
}

Die Verwendung eines Komparators bietet Ihnen maximale Flexibilität bei der Definition Ihrer Sortierlogik. Wenn CustomObject Comparable implementiert, können Sie alternativ die einfachere Methode Collections.sort(list) verwenden.

Mit Java 8 ist das Sortieren von Sammlungen noch einfacher:

list.sort((left, right) -> left.getId() - right.getId());
list.sort(Comparator.comparing(CustomObject::getId));

Diese Beispiele zeigen, wie eine Java-Sammlung basierend auf einem bestimmten Feld sortiert wird, wodurch es einfacher wird, Daten gemäß bestimmten Anforderungen zu organisieren und zu bearbeiten.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3