I dette programmet lærer du å sortere en matriserliste med tilpasset objekt etter deres angitte eiendom i Java.
For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:
- Java-klasse og objekter
- Java ArrayList-klasse
Eksempel: Sorter ArrayList av tilpassede objekter etter eiendom
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()); ) ) )
Produksjon
A Aa BXZ
I programmet ovenfor har vi definert en CustomObject
klasse med en String
egenskap, customProperty.
Vi har også lagt til en konstruktør som initialiserer eiendommen, og en getter-funksjon getCustomProperty()
som returnerer customProperty.
I main()
metoden har vi laget en liste over tilpassede objekter, initialisert med 5 objekter.
For å sortere listen med den gitte egenskapen bruker vi listens sort()
metode. Den sort()
metoden tar en liste som skal sorteres (endelig sortert liste er også den samme) og en comparator
.
I vårt tilfelle er komparatoren en lambda som
- tar to objekter fra listen o1 og o2,
- sammenligner de to objektets customProperty ved hjelp av
compareTo()
metoden, - og returnerer til slutt et positivt tall hvis o1s eiendom er større enn o2s, negativ hvis o1s eiendom er mindre enn o2s, og null hvis de er like.
Basert på dette sorteres listen basert på minst eiendom til størst og lagres tilbake til liste.