Java program az egyedi objektumok tömblistájának tulajdonság szerinti rendezéséhez

Ebben a programban megtanulja az egyedi objektumok tömblistáját rendezni a Java adott tulajdonságai szerint.

A példa megértéséhez ismernie kell a következő Java programozási témákat:

  • Java osztály és objektumok
  • Java ArrayList osztály

Példa: Az egyéni objektumok tömblistájának rendezése tulajdonság szerint

 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()); ) ) )

Kimenet

 A Aa BXZ

A fenti programban meghatároztunk egy CustomObjectosztályt egy Stringtulajdonsággal, a customProperty.

Hozzáadtunk egy konstruktort, amely inicializálja a tulajdonságot, és egy getter függvényt, getCustomProperty()amely visszaadja a customProperty értéket.

A main()módszerben létrehoztunk egy tömb listát az egyedi objektumok listájáról, 5 objektummal inicializálva.

A lista tulajdonsággal történő rendezéséhez a list sort()metódusát használjuk. A sort()módszer a listát rendezni (a végleges rendezett lista is megegyezik) és a comparator.

Esetünkben az összehasonlító egy lambda amely

  • két objektumot vesz fel az o1 és o2 listáról,
  • összehasonlítja a két objektum customProperty compareTo()metódusát,
  • és végül pozitív számot ad, ha o1 tulajdonsága nagyobb, mint o2, negatív, ha o1 tulajdonsága kisebb, mint o2, és nulla, ha egyenlő.

Ennek alapján a listát a legkevesebb tulajdonság alapján rendezik a legnagyobbakig, és a listán tárolják.

érdekes cikkek...