Map freq = new HashMap(); try(Stream words = new Scanner(file).tokens()) { words.forEach(word -> { freq.merge(word.toLowerCase(), 1L, Long::sum); }); } forEach 내부에서 외부 상태(freq)를 수정하므로 순수 함수가 아닙니다. Map freq; try(Stream words = new Scanner(file).tokens()) { freq = words.collect(groupingBy(String::toLowerCase, counting())); } Collector collect 메서드는 스트림 종료작업으로 Collector 타입의 인자를 받아서 처리합니다. java.util...