Program Java untuk Mengurutkan ArrayList Objek Kustom Berdasarkan Properti

Dalam program ini, Anda akan belajar mengurutkan daftar larik objek khusus berdasarkan properti yang diberikan di Java.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman Java berikut:

  • Kelas dan Objek Java
  • Kelas ArrayList Java

Contoh: Sortir ArrayList Objek Kustom Berdasarkan Properti

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

Keluaran

 A Aa BXZ

Dalam program di atas, kita telah mendefinisikan CustomObjectkelas dengan Stringproperti, customProperty.

Kami juga telah menambahkan konstruktor yang menginisialisasi properti, dan fungsi pengambil getCustomProperty()yang mengembalikan customProperty.

Dalam main()metode ini, kami telah membuat daftar array dari daftar objek khusus, diinisialisasi dengan 5 objek.

Untuk mengurutkan daftar dengan properti yang diberikan, kami menggunakan sort()metode daftar . The sort()metode mengambil daftar akan diurutkan (daftar diurutkan akhir juga sama) dan comparator.

Dalam kasus kami, pembandingnya adalah lambda yang

  • mengambil dua objek dari daftar o1 dan o2,
  • membandingkan dua objek customProperty menggunakan compareTo()metode,
  • dan akhirnya mengembalikan bilangan positif jika properti o1 lebih besar dari o2, negatif jika properti o1 lebih kecil dari o2, dan nol jika sama.

Berdasarkan ini, daftar diurutkan berdasarkan properti terkecil ke terbesar dan disimpan kembali ke daftar.

Artikel yang menarik...