문제
다음 Java 코드의 실행 결과를 쓰시오.
Javaimport java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { Map<Integer, String> items = new HashMap<>(); items.put(3, "cherry"); items.put(1, "grape"); items.put(2, "orange"); String output = items.entrySet().stream() .sorted((e1, e2) -> e2.getValue().compareTo(e1.getValue())) .map(entry -> entry.getValue().substring(0, 2).toUpperCase()) .collect(Collectors.joining("-")); System.out.println(output); } }
정답
OR-GR-CH
OR-GR-CH
해설
entrySet()를 스트림으로 만든 뒤 문자열 값 기준으로 내림차순 정렬합니다. 값의 내림차순 순서는 orange, grape, cherry입니다. 각 값의 앞 2글자를 추출해 대문자로 바꾸면 OR, GR, CH가 되고, 이를 '-'로 연결하면 OR-GR-CH가 됩니다.