Item 46. Side-Effect-Free Function
// ์ ์ข์ ์์
class Example {
public static void main(String[] args) {
Map<String, Long> freq = new HashMap<>();
try (Stream<String> words = new Scanner(file).tokens()) {
// ์คํธ๋ฆผ API๋ฅผ ์ฌ์ฉํ์ง๋ง ๋จ์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ๊ฒ๊ณผ ๊ฐ๋ค.
words.forEach(word -> {
// ๋จ์ด๋ฅผ ์๋ฌธ์๋ก ๋ณํํ ๋ค์, ์ธ๋ถ ์ํ๋ฅผ ์์ (์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ผ ์ด์์ ์ผ์ ์ํ ์ค)
freq.merge(word.toLowerCase(), 1L, Long::sum);
});
}
}
}
// ์ข์ ์์
class Example {
public static void main(String[] args) {
Map<String, Long> freq;
try (Stream<String> words = new Scanner(file).tokens()) {
// ์คํธ๋ฆผ ํ์ดํ๋ผ์ธ์ ์ด์ฉํด ์ธ๋ถ ์ํ๋ฅผ ์์ ํ์ง ์๊ณ ๋จ์ด ๋น๋๋ฅผ ๊ณ์ฐ
freq = words
.collect(groupingBy(String::toLowerCase, counting()));
}
}
}Collectors
Last updated