Šajā programmā jūs iemācīsities kārtot pielāgotu objektu masīvu sarakstu pēc viņu īpašuma Java.
Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:
- Java klase un objekti
- Java ArrayList klase
Piemērs: kārtojiet pielāgotu objektu masīvu sarakstu pēc īpašuma
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()); ) ) )
Rezultāts
A Aa BXZ
Iepriekš minētajā programmā mēs esam definējuši CustomObject
klasi ar String
rekvizītu customProperty.
Mēs esam pievienojuši arī konstruktoru, kas inicializē īpašumu, un funkciju getter, getCustomProperty()
kas atgriež customProperty.
Šajā main()
metodē, mēs esam izveidojuši masīva sarakstu pasūtījuma objektu sarakstu, inicializētu ar 5 priekšmetiem.
Lai kārtotu sarakstu ar norādīto rekvizītu, mēs izmantojam saraksta sort()
metodi. sort()
Metode ņem sarakstu varētu sašķirot (gala sakārtots saraksts ir arī tas pats) un comparator
.
Mūsu gadījumā salīdzinātājs ir lambda, kas
- ņem divus objektus no saraksta o1 un o2,
- salīdzina divu objektu customProperty, izmantojot
compareTo()
metodi, - un visbeidzot atgriež pozitīvo skaitli, ja o1 īpašība ir lielāka par o2, negatīva, ja o1 īpašība ir mazāka par o2, un nulle, ja tie ir vienādi.
Pamatojoties uz to, saraksts tiek sakārtots, pamatojoties uz vismazāko īpašumu līdz lielākajam, un tiek saglabāts atpakaļ uz sarakstu.