Rumah >Java >javaTutorial >Bagaimana untuk Mengira Kejadian Rentetan dalam Java Menggunakan Strim dengan Cekap?

Bagaimana untuk Mengira Kejadian Rentetan dalam Java Menggunakan Strim dengan Cekap?

Barbara Streisand
Barbara Streisandasal
2024-11-30 17:53:16413semak imbas

How to Efficiently Count Occurrences of Strings in Java Using Streams?

Mengira Kejadian dengan Java Stream's groupBy

Di Java, anda boleh menggunakan strim untuk mengagregat data dengan cekap. Satu operasi biasa ialah mengumpulkan item mengikut nilainya dan mengira kejadiannya.

Contoh

Andaikan anda mempunyai senarai rentetan dan ingin mengira kekerapan setiap rentetan unik . Matlamatnya ialah untuk mencipta peta yang kuncinya ialah rentetan, dan nilainya ialah kiraan kejadiannya.

kumpulanDengan Pemungut Mengira

Untuk mencapai matlamat ini, kami boleh menggunakan kaedah groupBy bersama-sama dengan pengumpul mengira. Kaedah groupBy menyusun elemen ke dalam kumpulan berdasarkan kunci yang ditentukan. Dalam kes ini, kami ingin mengumpulkan rentetan mengikut identitinya.

Map<String, Long> wordToFrequency = list.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

Dalam kod ini, Function.identity() memperoleh rentetan itu sendiri sebagai kunci pengumpulan, pada asasnya mengekalkan unsur asal. Collectors.counting() menyediakan pengumpul yang mengembalikan kiraan elemen dalam setiap kumpulan.

Hasil

Selepas mengumpulkan dan mengira, kami memperoleh peta dengan kiraan yang diingini :

{Hello=2, World=1}

Peta ini mengandungi kiraan kejadian untuk setiap rentetan unik dalam rentetan asal senarai.

Pertimbangan Kecekapan

Untuk set data yang besar, menggunakan Collectors.groupingByConcurrent mungkin menawarkan kecekapan yang lebih baik. Ia berfungsi secara selari, meningkatkan prestasi dalam persekitaran berbilang teras. Walau bagaimanapun, pendekatan ini mungkin tidak sesuai dalam senario yang susunan elemen atau keselamatan benang adalah penting.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Kejadian Rentetan dalam Java Menggunakan Strim dengan Cekap?. 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