Program Java pro třídění ArrayList vlastních objektů podle vlastností

V tomto programu se naučíte třídit seznam vlastních objektů podle jejich dané vlastnosti v Javě.

Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:

  • Třída Java a objekty
  • Třída Java ArrayList

Příklad: Řazení ArrayList vlastních objektů podle 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ýstup

 A Aa BXZ

Ve výše uvedeném programu jsme definovali CustomObjecttřídu s Stringvlastností customProperty.

Také jsme přidali konstruktor, který inicializuje vlastnost, a funkci getCustomProperty()getru, která vrací customProperty.

V main()metodě jsme vytvořili seznam matic seznamu vlastních objektů, inicializovaný 5 objekty.

Pro třídění seznamu s danou vlastností používáme sort()metodu seznamu . sort()Metoda bere seznam být řazeny (konečná setříděný seznam je také stejná) a comparator.

V našem případě je komparátor lambda který

  • vezme dva objekty ze seznamu o1 a o2,
  • porovnává customProperty objektu pomocí compareTo()metody,
  • a nakonec vrátí kladné číslo, pokud je vlastnost o1 větší než o2, záporná, pokud je vlastnost o1 menší než o2, a nula, pokud jsou stejné.

Na základě toho je seznam seřazen podle nejmenší vlastnosti k největší a uložen zpět do seznamu.

Zajímavé články...