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

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

Susan Sarandon
Lepaskan: 2024-11-07 22:49:02
asal
711 orang telah melayarinya

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();
    }
};
Salin selepas log masuk

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

Collections.sort(list, comparator);
Salin selepas log masuk

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());
Salin selepas log masuk

Notasi Ringkas dengan JDK 8:

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

list.sort(Comparator.comparing(CustomObject::getId));
Salin selepas log masuk

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!

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