Heim >Java >javaLernprogramm >Wie sortiere ich eine ArrayList benutzerdefinierter Objekte in Java basierend auf einer bestimmten Eigenschaft?

Wie sortiere ich eine ArrayList benutzerdefinierter Objekte in Java basierend auf einer bestimmten Eigenschaft?

Linda Hamilton
Linda HamiltonOriginal
2024-11-16 17:03:03383Durchsuche

How to Sort an ArrayList of Custom Objects in Java Based on a Specific Property?

So sortieren Sie eine ArrayList benutzerdefinierter Objekte in Java

Das Sortieren einer ArrayList benutzerdefinierter Objekte umfasst den Vergleich der Objekte anhand bestimmter Eigenschaften. In diesem Fall haben wir eine Liste von Fruit-Objekten und möchten sie nach ihren Fruchtnamen sortieren.

Erstellen der Fruit-Klasse und der ArrayList

Wir fangen an durch Definieren der Fruit-Klasse mit ihren Attributen und Gettern/Settern:

public class Fruit {
    private String fruitName;
    private String fruitDesc;
    private int quantity;
    // getters and setters
}

// Create an ArrayList of Fruit
List<Fruit> fruits = new ArrayList<>();

Hinzufügen von Früchten zur ArrayList

Wir füllen die ArrayList mithilfe einer Schleife:

Fruit fruit;
for (int i = 0; i < 100; i++) {
    fruit = new Fruit();
    // set fruit properties
    fruits.add(fruit);
}

Sortieren der ArrayList

Um die ArrayList nach Fruchtnamen zu sortieren, verwenden wir die Collections.sort-Methode und einen benutzerdefinierten Komparator:

Collections.sort(fruits, new Comparator<Fruit>() {
    @Override
    public int compare(Fruit fruit1, Fruit fruit2) {
        return fruit1.getFruitName().compareTo(fruit2.getFruitName());
    }
});

Im Komparator verwenden wir die Methode „compareTo“, um die Fruchtnamen der beiden Früchte zu vergleichen und basierend auf dem Ergebnis eine Ganzzahl zurückzugeben:

  • Wenn der Name von Frucht1 in alphabetischer Reihenfolge vor dem Namen von Frucht2 steht, wird zurückgegeben eine negative Ganzzahl.
  • Wenn der Name von Frucht1 in alphabetischer Reihenfolge nach dem Namen von Frucht2 steht, wird eine positive Ganzzahl zurückgegeben.
  • Wenn beide Namen gleich sind, wird 0 zurückgegeben.

Nach dem Sortieren enthält die Früchte-ArrayList die Fruchtobjekte, alphabetisch nach ihren Fruchtnamen sortiert.

Das obige ist der detaillierte Inhalt vonWie sortiere ich eine ArrayList benutzerdefinierter Objekte in Java basierend auf einer bestimmten Eigenschaft?. 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