Rumah >Java >javaTutorial >Bagaimana untuk Mengira Frekuensi Perkataan dalam Java 8 Menggunakan Strim?

Bagaimana untuk Mengira Frekuensi Perkataan dalam Java 8 Menggunakan Strim?

Barbara Streisand
Barbara Streisandasal
2024-10-31 05:54:30488semak imbas

How to Count Word Frequencies in Java 8 Using Streams?

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:

  1. Panggil strim() pada senarai untuk membuat strim.
  2. Kumpulkan elemen dalam strim mengikut nilainya menggunakan Collectors.groupingBy(Function.identity()).
  3. Kira kejadian setiap perkataan menggunakan Collectors.counting().

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!

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