Rumah >Java >javaTutorial >Bagaimanakah saya boleh mengira kekerapan perkataan dengan cekap dalam senarai menggunakan 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.
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");
Logik teras melibatkan pengumpulan perkataan mengikut identiti mereka dan mengira kejadian:
Map<String, Long> collect = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
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}
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)));
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 ));
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!