V tomto programe sa naučíte triediť zoznam vlastných objektov podľa ich danej vlastnosti v jazyku Java.
Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:
- Trieda Java a objekty
- Trieda Java ArrayList
Príklad: Zoradenie poľa vlastných objektov podľa vlastnosti
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ýkon
A Aa BXZ
Vo vyššie uvedenom programe sme definovali CustomObject
triedu s String
vlastnosťou customProperty.
Pridali sme tiež konštruktor, ktorý inicializuje vlastnosť, a funkciu getra, getCustomProperty()
ktorá vracia customProperty.
V main()
metóde sme vytvorili zoznam vlastných zoznamov objektov, inicializovaný 5 objektmi.
Na triedenie zoznamu s danou vlastnosťou použijeme sort()
metódu zoznamu . sort()
Metóda berie zoznam byť radené (konečná zotriedený zoznam je tiež rovnaká) a comparator
.
V našom prípade je komparátorom lambda, ktorá
- vezme dva objekty zo zoznamu o1 a o2,
- porovnáva
compareTo()
metódu customProperty dvoch objektov , - a nakoniec vráti kladné číslo, ak je vlastnosť o1 väčšia ako o2, záporná, ak je vlastnosť o1 menšia ako o2 a nula, ak sú rovnaké.
Na základe toho sa zoznam triedi podľa najmenšej vlastnosti po najväčšiu a ukladá sa späť do zoznamu.