Program Java do sortowania ArrayList obiektów niestandardowych według właściwości

W tym programie nauczysz się sortować listę tablicową obiektów niestandardowych według ich właściwości w Javie.

Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:

  • Klasa i obiekty Java
  • Klasa ArrayList języka Java

Przykład: Sortuj ArrayList obiektów niestandardowych według właściwości

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

Wynik

 A Aa BXZ

W powyższym programie zdefiniowaliśmy CustomObjectklasę z Stringwłaściwością customProperty.

Dodaliśmy również konstruktor, który inicjuje właściwość, oraz funkcję pobierającą, getCustomProperty()która zwraca customProperty.

W main()metodzie stworzyliśmy tablicę zawierającą listę obiektów niestandardowych, zainicjowaną 5 obiektami.

Do sortowania listy według podanej właściwości używamy sort()metody list . sort()Metoda ta lista sortowany (końcowe posortowanej listy jest również taka sama) i comparator.

W naszym przypadku komparatorem jest lambda, która

  • pobiera dwa obiekty z listy o1 i o2,
  • porównuje customProperty dwóch obiektów przy użyciu compareTo()metody,
  • i na koniec zwraca liczbę dodatnią, jeśli własność o1 jest większa niż o2, ujemna, jeśli własność o1 jest mniejsza niż o2 i zero, jeśli są równe.

Na tej podstawie lista jest sortowana według właściwości od najmniejszej do największej i zapisywana z powrotem do listy.

Interesujące artykuły...