Tässä ohjelmassa opit lajittelemaan mukautettujen objektien taulukon niiden Java-ominaisuuden mukaan.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:
- Java-luokka ja objektit
- Java ArrayList -luokka
Esimerkki: Lajittele mukautettujen objektien ArrayList omaisuuden mukaan
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()); ) ) )
Tuotos
A Aa BXZ
Edellä olevassa ohjelmassa olemme määrittäneet CustomObject
luokan, jolla on String
ominaisuus customProperty.
Olemme myös lisänneet rakentajan, joka alustaa ominaisuuden, ja getter-funktion, getCustomProperty()
joka palauttaa customProperty-arvon.
Vuonna main()
menetelmässä, olemme luoneet joukko luettelo räätälöityjä objekteja luettelon, alustetaan 5 esineitä.
Luettelon lajittelemiseksi annetulla ominaisuudella käytämme listan sort()
menetelmää. sort()
Menetelmä vie luettelo lajitellaan (lopullinen lajiteltua luettelo on myös sama) ja comparator
.
Meidän tapauksessamme vertailija on lambda, joka
- ottaa kaksi objektia luettelosta o1 ja o2,
- vertaa kahden objektin customProperty-
compareTo()
menetelmää, - ja palauttaa lopuksi positiivisen luvun, jos o1: n ominaisuus on suurempi kuin o2, negatiivinen, jos o1: n ominaisuus on pienempi kuin o2: n, ja nolla, jos ne ovat yhtä suuret.
Tämän perusteella luettelo lajitellaan vähimmäisominaisuuden perusteella suurimpaan ja tallennetaan takaisin luetteloon.