Rumah >Java >javaTutorial >Bagaimana untuk Mengira Kejadian Rentetan dalam Java Menggunakan Strim dengan Cekap?
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!