문제
다음 Java 코드의 실행 결과를 쓰시오.
Javaimport java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { Map<String, Integer> data = new HashMap<>(); data.put("java", 4); data.put("python", 6); data.put("c", 1); data.put("go", 2); String result = data.entrySet().stream() .filter(e -> e.getValue() > 2) .sorted((a, b) -> b.getKey().compareTo(a.getKey())) .map(Map.Entry::getKey) .collect(Collectors.joining("-")); System.out.println(result); } }
정답
python-java
python-java
해설
Map의 entrySet()을 Stream으로 변환한 후, filter(e -> e.getValue() > 2)로 값이 2보다 큰 항목만 필터링합니다(java:4, python:6). sorted((a, b) -> b.getKey().compareTo(a.getKey()))로 키를 내림차순 정렬합니다(python, java). map(Map.Entry::getKey)로 키만 추출하고, collect(Collectors.joining("-"))로 "-"를 구분자로 문자열을 결합합니다.