Java-Programm zum Sortieren der ArrayList von benutzerdefinierten Objekten nach Eigenschaften

In diesem Programm lernen Sie, eine Arrayliste von benutzerdefinierten Objekten nach der angegebenen Eigenschaft in Java zu sortieren.

Um dieses Beispiel zu verstehen, sollten Sie die folgenden Java-Programmierthemen kennen:

  • Java-Klasse und Objekte
  • Java ArrayList-Klasse

Beispiel: Sortieren der ArrayList benutzerdefinierter Objekte nach Eigenschaften

 import java.util.*; public class CustomObject ( private String customProperty; public CustomObject(String property) ( this.customProperty = property; ) public String getCustomProperty() ( return this.customProperty; ) public static void main(String() args) ( ArrayList list = new ArrayList(); list.add(new CustomObject("Z")); list.add(new CustomObject("A")); list.add(new CustomObject("B")); list.add(new CustomObject("X")); list.add(new CustomObject("Aa")); list.sort((o1, o2) -> o1.getCustomProperty().compareTo(o2.getCustomProperty())); for (CustomObject obj : list) ( System.out.println(obj.getCustomProperty()); ) ) )

Ausgabe

 A Aa BXZ

Im obigen Programm haben wir eine CustomObjectKlasse mit der StringEigenschaft customProperty definiert.

Wir haben auch einen Konstruktor hinzugefügt, der die Eigenschaft initialisiert, und eine Getter-Funktion, getCustomProperty()die customProperty zurückgibt.

In der main()Methode haben wir eine Array-Liste mit benutzerdefinierten Objekten erstellt, die mit 5 Objekten initialisiert wurde.

Zum Sortieren der Liste mit der angegebenen Eigenschaft verwenden wir die sort()Methode list . Die sort()Methode verwendet die zu sortierende Liste (die endgültige sortierte Liste ist ebenfalls dieselbe) und a comparator.

In unserem Fall ist der Komparator ein Lambda, das

  • nimmt zwei Objekte aus der Liste o1 und o2,
  • vergleicht die customProperty der beiden Objekte mit der compareTo()Methode:
  • und gibt schließlich eine positive Zahl zurück, wenn die Eigenschaft von o1 größer als die von o2 ist, eine negative, wenn die Eigenschaft von o1 kleiner als die von o2 ist, und null, wenn sie gleich sind.

Auf dieser Grundlage wird die Liste nach der niedrigsten bis zur größten Eigenschaft sortiert und in der Liste gespeichert.

Interessante Beiträge...