Mengira Kejadian dengan groupBy
Kaedah groupBy dalam aliran Java membolehkan kami mengumpul elemen ke dalam kumpulan berdasarkan kunci yang ditentukan. Dalam kes ini, kami ingin mengumpulkan rentetan mengikut nilainya dan mengira kejadian dalam setiap kumpulan.
Untuk mencapai ini, kami boleh menggunakan lebihan groupBy yang memerlukan Pemungut kedua. Kami akan menyediakan Collectors.counting() sebagai Collector ini, yang akan mengira elemen dalam setiap kumpulan.
Begini cara untuk melaksanakan ini menggunakan strim:
import java.util.*; import java.util.stream.*; class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, Long> counted = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); System.out.println(counted); } }
Ini akan menghasilkan yang berikut output:
{Hello=2, World=1}
Peta mengandungi dua entri, dengan "Hello" dipetakan kepada 2 dan "Dunia" dipetakan kepada 1. Ini mewakili kiraan kejadian bagi setiap perkataan dalam senarai input.
Perhatikan bahawa kami juga boleh menggunakan groupingByConcurrent untuk meningkatkan kecekapan, terutamanya dalam senario di mana pelaksanaan serentak adalah selamat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Rentetan dalam Senarai Menggunakan Aliran Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!