Rumah > Java > javaTutorial > teks badan

Bagaimanakah saya boleh mengira kekerapan perkataan dengan cekap dalam senarai menggunakan Java 8?

Patricia Arquette
Lepaskan: 2024-10-31 20:41:02
asal
594 orang telah melayarinya

How can I efficiently count word frequency in a list using Java 8?

Mengira Kekerapan Perkataan dengan Java 8

Dalam pembangunan web dan analisis data, memahami kekerapan perkataan adalah penting. Untuk mencapai matlamat ini, kami akan menyelidiki cara mengira kekerapan perkataan dalam senarai menggunakan Java 8.

Penyelesaian Java 8

API Strim dalam Java 8 menyediakan penyelesaian yang elegan untuk perkataan pengiraan kekerapan. Untuk memulakan, buat senarai perkataan:

List<String> wordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
Salin selepas log masuk

Logik teras melibatkan pengumpulan perkataan mengikut identiti mereka dan mengira kejadian:

Map<String, Long> collect = wordsList.stream()
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
Salin selepas log masuk

Ini menghasilkan peta di mana setiap kunci berada perkataan yang unik, dan nilai yang sepadan ialah kekerapannya. Output sepatutnya menyerupai:

{ciao=2, hello=1, bye=2}
Salin selepas log masuk

Mengira Nilai Integer

Jika anda memerlukan nilai integer dan bukannya nilai panjang, gunakan:

Map<String, Integer> collect = wordsList.stream()
     .collect(Collectors.groupingBy(Function.identity(), Collectors.summingInt(e -> 1)));
Salin selepas log masuk

Mengisih Peta mengikut Nilai

Untuk mengisih peta berdasarkan nilai dalam tertib menurun, gunakan:

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
            ));
Salin selepas log masuk

Langkah ini mengembalikan LinkedHashMap yang diisih dengan kekunci mewakili perkataan dan nilai mewakili frekuensi diisihnya.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengira kekerapan perkataan dengan cekap dalam senarai menggunakan Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!