Kiraan Frekuensi Perkataan dalam Java 8 Menggunakan Strim
Mengira kekerapan perkataan dalam senarai ialah tugas biasa dalam pemprosesan teks. Dalam Java 8, ini boleh dicapai dengan cekap menggunakan kaedah Collectors.groupingBy() dan Collectors.counting().
Untuk mencari kekerapan perkataan dalam senarai rentetan, anda boleh menggunakan langkah berikut:
Sebagai contoh, diberikan senarai perkataan berikut:
List<String> wordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
Anda boleh mengira kekerapan perkataan sebagai berikut:
Map<String,Long> wordFrequencies = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Ini akan menghasilkan peta dengan kekerapan perkataan, dengan kuncinya ialah perkataan dan nilainya ialah bilangan kejadian. Keputusan untuk senarai yang diberikan ialah:
{ciao=2, hello=1, bye=2}
Untuk mengisih peta mengikut nilai, anda boleh menggunakan LinkedHashMap dan kaedah entrySet() untuk mengumpul entri peta ke dalam strim. Kemudian, gunakan sorted() untuk mengisih entri mengikut nilai dalam tertib menurun dan Collectors.toMap() untuk mengumpulkannya ke dalam LinkedHashMap baharu:
LinkedHashMap<String, Long> countByWordSorted = wordFrequencies.entrySet() .stream() .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) .collect(Collectors.toMap( Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> { throw new IllegalStateException(); }, LinkedHashMap::new ));
Ini akan menghasilkan peta yang diisih di mana perkataan disusun mengikut kekerapan mereka.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Frekuensi Perkataan dalam Java 8 Menggunakan Strim?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!