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 CustomObject
klass med en String
egendom, 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.