Java-programma om ArrayList van aangepaste objecten op eigenschap te sorteren

In dit programma leer je een arraylist met aangepaste objecten te sorteren op hun gegeven eigenschap in Java.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:

  • Java-klasse en objecten
  • Java ArrayList-klasse

Voorbeeld: Sorteer ArrayList van aangepaste objecten op eigenschap

 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()); ) ) )

Uitvoer

 Een Aa BXZ

In het bovenstaande programma hebben we een CustomObjectklasse gedefinieerd met een Stringeigenschap, customProperty.

We hebben ook een constructor toegevoegd die de eigenschap initialiseert, en een getter-functie getCustomProperty()die customProperty retourneert.

In de main()methode hebben we een arraylijst met aangepaste objectenlijst gemaakt, geïnitialiseerd met 5 objecten.

Om de lijst met de gegeven eigenschap te sorteren, gebruiken we de sort()methode van de lijst . De sort()methode neemt de lijst die moet worden gesorteerd (de uiteindelijke gesorteerde lijst is ook hetzelfde) en een comparator.

In ons geval is de comparator een lambda die

  • neemt twee objecten uit de lijst o1 en o2,
  • vergelijkt de customProperty van de twee objecten met behulp van de compareTo()methode,
  • en geeft tenslotte een positief getal terug als de eigenschap van o1 groter is dan de eigenschap van o2, negatief als de eigenschap van o1 kleiner is dan de eigenschap van o2, en nul als ze gelijk zijn.

Op basis hiervan wordt de lijst gesorteerd op basis van de kleinste eigenschap tot de grootste en weer opgeslagen in de lijst.

Interessante artikelen...