스트림을 사용하는 Java 8의 단어 빈도 계산
목록 내 단어의 빈도를 계산하는 것은 텍스트 처리에서 일반적인 작업입니다. Java 8에서는 Collectors.groupingBy() 및 Collectors.counting() 메서드를 사용하여 이를 효율적으로 달성할 수 있습니다.
문자열 목록에서 단어 빈도를 찾으려면 다음 단계를 사용할 수 있습니다.
예를 들어 다음 단어 목록이 주어지면
List<String> wordsList = Lists.newArrayList("hello", "bye", "ciao", "bye", "ciao");
단어 빈도를 다음과 같이 계산할 수 있습니다. 다음은 다음과 같습니다.
Map<String,Long> wordFrequencies = wordsList.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
이렇게 하면 단어 빈도가 포함된 맵이 생성됩니다. 여기서 키는 단어이고 값은 발생 횟수입니다. 주어진 목록의 결과는 다음과 같습니다.
{ciao=2, hello=1, bye=2}
값별로 지도를 정렬하려면 LinkedHashMap 및 EntrySet() 메서드를 사용하여 지도 항목을 스트림으로 수집할 수 있습니다. 그런 다음 sorted()를 사용하여 값을 기준으로 내림차순으로 항목을 정렬하고 Collectors.toMap()을 사용하여 항목을 새로운 LinkedHashMap으로 수집합니다.
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 ));
이렇게 하면 단어가 다음과 같이 정렬된 정렬된 맵이 생성됩니다. 빈도를 나타냅니다.
위 내용은 스트림을 사용하여 Java 8에서 단어 빈도를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!