Selles programmis õpite sorteerima kohandatud objektide massiivide loendit Java-s antud atribuudi järgi.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:
- Java klass ja objektid
- Java ArrayList klass
Näide: sortige kohandatud objektide massiivi loend atribuudi järgi
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()); ) ) )
Väljund
A Aa BXZ
Ülalolevas programmis oleme määranud CustomObject
klassi, millel on String
omadus customProperty.
Lisasime ka atribuudi initsialiseeriva konstruktori ja funktsiooni getter, getCustomProperty()
mis tagastab customProperty.
Kui main()
meetod, oleme loonud hulgaliselt nimekirja kohandatud objektide nimekirja, vormindatud 5 objekti.
Antud atribuudiga loendi sorteerimiseks kasutame loendi sort()
meetodit. sort()
Meetod võtab nimekirja sorteerida (lõplik sorditud nimekiri on ka sama) ja comparator
.
Meie puhul on võrdluseks lambda mis
- võtab loendist o1 ja o2 kaks objekti,
- võrdleb kahe objekti customProperty
compareTo()
meetodit, - ja lõpuks tagastab positiivse arvu, kui o1 omadus on suurem kui o2, negatiivne, kui o1 omadus on väiksem kui o2, ja nulli, kui need on võrdsed.
Sellest lähtuvalt sorteeritakse loend kõige vähem atribuudist suurima järgi ja salvestatakse tagasi loendisse.