„Java“ programa pasirinktinių objektų masyvų sąrašui rūšiuoti pagal nuosavybę

Š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 CustomObjectklasę su Stringypatybe „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šą.

Įdomios straipsniai...