Program Java pentru a sorta ArrayList de obiecte personalizate după proprietate

În acest program, veți învăța să sortați un arraylist de obiecte personalizate după proprietatea lor dată în Java.

Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:

  • Clasa și obiecte Java
  • Clasa Java ArrayList

Exemplu: Sortează ArrayList de obiecte personalizate după proprietate

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

Ieșire

 A Aa BXZ

În programul de mai sus, am definit o CustomObjectclasă cu o Stringproprietate, customProperty.

Am adăugat, de asemenea, un constructor care inițializează proprietatea și o funcție getter getCustomProperty()care returnează customProperty.

În main()metodă, am creat o listă matrice de liste de obiecte personalizate, inițializată cu 5 obiecte.

Pentru sortarea listei cu proprietatea dată, folosim sort()metoda list . sort()Metoda ia lista pentru a fi sortate (lista finală sortată este , de asemenea , la fel) și o comparator.

În cazul nostru, comparatorul este o lambda care

  • preia două obiecte din lista o1 și o2,
  • compară customProperty celor două obiecte folosind compareTo()metoda,
  • și în cele din urmă returnează un număr pozitiv dacă proprietatea lui o1 este mai mare decât o2, negativ dacă proprietatea lui o1 este mai mică decât o2 și zero dacă sunt egale.

Pe baza acestui fapt, lista este sortată în funcție de cea mai mică proprietate la cea mai mare și stocată înapoi la listă.

Articole interesante...