Java-program för att sortera ArrayList av anpassade objekt efter egendom

I det här programmet lär du dig att sortera en arraylista med anpassat objekt efter deras givna egendom i Java.

För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:

  • Java-klass och objekt
  • Java ArrayList-klass

Exempel: Sortera ArrayList av anpassade objekt efter egendom

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

Produktion

 A Aa BXZ

I ovanstående program har vi definierat en CustomObjectklass med en Stringegendom, customProperty.

Vi har också lagt till en konstruktör som initialiserar fastigheten och en getter-funktion getCustomProperty()som returnerar customProperty.

I main()metoden har vi skapat en matrislista med anpassade objektlistor, initialiserade med 5 objekt.

För att sortera listan med den angivna egenskapen använder vi listans sort()metod. Den sort()metoden tar listan som skall sorteras (slutlig sorterad lista är också samma) och en comparator.

I vårt fall är komparatorn en lambda som

  • tar två objekt från listan o1 och o2,
  • jämför de två objektens customProperty med hjälp av compareTo()metoden,
  • och returnerar slutligen positivt tal om o1: s egenskap är större än o2, negativ om o1: s egenskap är mindre än o2 och noll om de är lika.

Baserat på detta sorteras listan baserat på minsta egenskap till störst och lagras tillbaka till listan.

Intressanta artiklar...