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

Bagaimana untuk Mengira Frekuensi Perkataan dalam Senarai Menggunakan Java 8?

DDD
DDDasal
2024-10-30 02:11:29755semak imbas

How to Calculate Word Frequencies in a List Using Java 8?

Pengiraan kekerapan perkataan dalam Java 8

Bagaimana untuk mengira kekerapan perkataan dalam senarai menggunakan Java 8?

<code class="java">List<String> wordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");</code>

Hasilnya sepatutnya:

<code class="java">{ciao=2, hello=1, bye=2}</code>

Pada mulanya, saya menjangkakan akan menggunakan kaedah peta dan mengurangkan, tetapi kaedah sebenar berbeza sedikit.

<code class="java">Map<String, Long> collect = wordsList.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));</code>

Atau untuk nilai integer:

<code class="java">Map<String, Integer> collect = wordsList.stream()
     .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));</code>

EDIT

Saya juga menambah cara mengisih peta mengikut nilai:

<code class="java">LinkedHashMap<String, Long> countByWordSorted = collect.entrySet()
            .stream()
            .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
            .collect(Collectors.toMap(
                    Map.Entry::getKey,
                    Map.Entry::getValue,
                    (v1, v2) -> {
                        throw new IllegalStateException();
                    },
                    LinkedHashMap::new
            ));</code>

Atas ialah kandungan terperinci Bagaimana untuk Mengira Frekuensi Perkataan dalam Senarai Menggunakan Java 8?. 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