Šioje programoje išmoksite rūšiuoti pasirinktinio objekto masyvų sąrašą pagal jų nurodytą ypatybę „Java“.
Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:
- „Java“ klasė ir objektai
- „Java ArrayList“ klasė
Pavyzdys: rūšiuokite pasirinktų objektų masyvų sąrašą pagal nuosavybę
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()); ) ) )
Rezultatas
A Aa BXZ
Pirmiau pateiktoje programoje mes apibrėžėme CustomObject
klasę su String
ypatybe „customProperty“.
Mes taip pat pridėjome konstruktorių, kuris inicijuoja ypatybę, ir funkciją „getter“, getCustomProperty()
kuri grąžina „customProperty“.
Pagal šį main()
metodą sukūrėme pasirinktinių objektų sąrašo masyvų sąrašą, inicializuotą 5 objektais.
Norėdami rūšiuoti sąrašą pagal nurodytą ypatybę, mes naudojame sąrašo sort()
metodą. sort()
Metodas mano sąrašą galima rūšiuoti (galutinis Rūšiuota sąrašą taip pat ta pati) ir comparator
.
Mūsų atveju palyginamasis yra lambda kuris
- paima du objektus iš o1 ir o2 sąrašo,
- palygina dviejų objektų customProperty naudojant
compareTo()
metodą, - ir galiausiai pateikia teigiamą skaičių, jei o1 savybė yra didesnė už o2, neigiamą, jei o1 nuosavybė yra mažesnė už o2, ir nulį, jei jos yra lygios.
Remiantis tuo, sąrašas yra rūšiuojamas atsižvelgiant į mažiausiai nuosavybę į didžiausią ir saugomas atgal į sąrašą.