Rumah >Java >javaTutorial >Bagaimana Mengisih Koleksi Java: Perbandingan, Sebanding dan Ungkapan Lambda?

Bagaimana Mengisih Koleksi Java: Perbandingan, Sebanding dan Ungkapan Lambda?

Susan Sarandon
Susan Sarandonasal
2024-11-07 22:49:02691semak imbas

How to Sort Java Collections: Comparator, Comparable, and Lambda Expressions?

Mengisih Koleksi Java

Untuk mengisih Koleksi Java, terdapat beberapa pendekatan yang perlu dipertimbangkan, bergantung pada keperluan khusus. Satu pilihan biasa ialah menggunakan Comparator.

Menggunakan Comparator:

Buat kelas Comparator yang melaksanakan antara muka Comparator. Dalam kaedah compare(), anda mentakrifkan logik untuk membandingkan objek. Contohnya, untuk mengisih CustomObject mengikut medan idnya:

Comparator<CustomObject> comparator = new Comparator<CustomObject>() {
    @Override
    public int compare(CustomObject left, CustomObject right) {
        return left.getId() - right.getId();
    }
};

Kemudian, gunakan Comparator untuk mengisih koleksi menggunakan Collections.sort():

Collections.sort(list, comparator);

Sebagai alternatif, jika anda CustomObject mengimplementasikan Comparable, anda boleh terus menggunakan Collections.sort(list).

Dengan Ungkapan Lambda JDK 8:

Diperkenalkan dalam JDK 8, ungkapan lambda menyediakan cara yang mudah untuk menulis Pembanding:

Collections.sort(list, (left, right) -> left.getId() - right.getId());

Notasi Ringkas dengan JDK 8:

Untuk senario mudah, tatatanda trengkas berikut boleh digunakan untuk mengisih mengikut medan tertentu:

list.sort(Comparator.comparing(CustomObject::getId));

Akhirnya, pendekatan terbaik untuk mengisih Koleksi Java bergantung pada keperluan khusus dan versi Java yang digunakan.

Atas ialah kandungan terperinci Bagaimana Mengisih Koleksi Java: Perbandingan, Sebanding dan Ungkapan Lambda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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