Rumah > Java > javaTutorial > Bagaimana untuk Mengisih Tatasusunan Objek mengikut Nama di Jawa?

Bagaimana untuk Mengisih Tatasusunan Objek mengikut Nama di Jawa?

Barbara Streisand
Lepaskan: 2024-11-25 12:17:12
asal
727 orang telah melayarinya

How to Sort an Array of Objects by Name in Java?

Mengisih Tatasusunan Objek dalam Java

Masalah:

Anda mempunyai pelbagai objek yang tidak mengandungi rentetan tetapi sebaliknya mempunyai rujukan objek. Setiap rujukan objek memberikan maklumat tentang nama, ID, pengarang dan penerbit melalui kaedah toString. Tugasnya ialah mengisih tatasusunan ini mengikut medan nama. Walau bagaimanapun, anda tidak pasti cara mengekstrak nama daripada setiap objek dan menggunakannya sebagai kriteria pengisihan.

Penyelesaian:

Untuk mengekstrak nama daripada setiap objek dan mengisih dengan medan ini, anda boleh menggunakan pendekatan berikut:

List<Book> books = new ArrayList<Book>();

Collections.sort(books, new Comparator<Book>() {
  @Override
  public int compare(Book o1, Book o2) {
    return o1.getName().compareTo(o2.getName());
  }
});
Salin selepas log masuk

Dalam ini contoh:

  • Senaraikan ialah senarai yang mewakili tatasusunan objek anda.
  • Collections.sort digunakan untuk mengisih senarai.
  • Comparator() {...} baharu mentakrifkan comparator tersuai untuk menentukan tertib pengisihan.
  • o1.getName() mengekstrak medan nama daripada objek pertama menggunakan kaedah getter atau akses terus jika medan adalah awam.
  • o2.getName() mengekstrak medan nama daripada objek kedua.
  • compareUntuk membandingkan nama yang diekstrak, mengembalikan nilai negatif jika nama pertama lebih kecil, nilai positif jika ia lebih besar, dan sifar jika ia sama.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Objek mengikut Nama di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan