문제
다음 Java 코드의 실행 결과를 쓰시오.
Javaimport java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { List<Integer> data = Arrays.asList(15, 3, 28, 7, 41, 12); Map<Boolean, List<Integer>> grouped = data.stream() .collect(Collectors.partitioningBy(x -> x % 2 == 0)); List<Integer> evens = grouped.get(true); evens.sort(Comparator.comparing(x -> x % 10).reversed()); System.out.println(evens.get(0) + evens.get(evens.size()-1)); } }
정답
40
40
해설
partitioningBy로 짝수와 홀수를 나누면 짝수 리스트는 [28, 12]이다. 이를 일의 자리 기준 내림차순으로 정렬하면 그대로 [28, 12]이다. 따라서 evens.get(0) + evens.get(evens.size()-1)은 28 + 12 = 40이다.