Rumah >Java >javaTutorial >Bagaimanakah saya boleh menggunakan Java 8 Streams untuk mengira kejadian unsur pendua dengan cekap?
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()));
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}
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!