문제
다음 Java 코드의 실행 결과를 쓰시오.
Javaimport java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { String result = Stream.of("cat", "dog", "bird", "fish") .filter(s -> s.length() > 3) .map(String::toUpperCase) .reduce("", (a, b) -> a + b.charAt(0)); System.out.println(result); } }
정답
BF
BF
해설
Stream 연산 과정을 단계별로 분석하면: 1) filter(s -> s.length() > 3): 길이가 3보다 큰 문자열만 필터링 → "bird", "fish" 2) map(String::toUpperCase): 대문자로 변환 → "BIRD", "FISH" 3) reduce("", (a, b) -> a + b.charAt(0)): 빈 문자열부터 시작해서 각 문자열의 첫 번째 문자를 누적 → "" + "B" + "F" = "BF"