Rumah > Java > javaTutorial > Bagaimanakah saya boleh menggunakan Java 8 Streams untuk mengira kejadian unsur pendua dengan cekap?

Bagaimanakah saya boleh menggunakan Java 8 Streams untuk mengira kejadian unsur pendua dengan cekap?

Mary-Kate Olsen
Lepaskan: 2024-11-15 04:29:02
asal
1065 orang telah melayarinya

How can I use Java 8 Streams to efficiently count occurrences of duplicate elements?

Mengira Kejadian dengan Java 8 Streams Menggunakan groupBy

Dalam aliran Java 8, kaedah groupBy membenarkan anda mengumpulkan elemen berdasarkan sifat tertentu atau nilai. Apabila digabungkan dengan pengumpul lain, seperti mengira, anda boleh mengira kejadian unsur pendua dalam strim dengan cekap.

Mari kita pertimbangkan contoh:

List<String> list = Arrays.asList("Hello", "Hello", "World");
Map<String, Long> wordToFrequency = list.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Salin selepas log masuk

Dalam contoh ini, kami menggunakan kaedah kumpul dengan lebihan yang mengambil Pengumpul sebagai hujah. Di dalam pengumpul, kami menggunakan groupingBy untuk mengumpulkan item berdasarkan nilai rentetannya (fungsi identiti). Kami kemudiannya menggabungkan ini dengan Collectors.counting() untuk mengira kejadian setiap rentetan unik.

Hasilnya, kami memperoleh peta di mana setiap kunci ialah rentetan unik dan nilai yang sepadan ialah bilangan kejadian dalam senarai itu. Dalam kes ini, peta akan mengandungi:

{Hello=2, World=1}
Salin selepas log masuk

Pendekatan ini sangat cekap dan mudah digunakan, menjadikannya sesuai untuk pelbagai senario di mana anda perlu mengira kejadian unsur dalam strim berdasarkan sifat tertentu . Ingat bahawa anda juga boleh memanfaatkan groupingByConcurrent untuk prestasi yang lebih baik apabila sesuai.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan Java 8 Streams untuk mengira kejadian unsur pendua dengan cekap?. 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