정보처리기사 실기JavaJava - Comparator 람다 정렬난이도 3SHORT_ANSWER

정보처리기사 실기 Java - Comparator 람다 정렬 기출문제 #2644

문제

다음 Java 코드의 실행 결과를 쓰시오.

Java
import java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { List<Person> people = Arrays.asList( new Person("Alice", 25), new Person("Bob", 30), new Person("Charlie", 20) ); people.stream() .sorted(Comparator.comparing(Person::getAge).reversed() .thenComparing(p -> p.getName().length())) .limit(2) .forEach(p -> System.out.print(p.getName().charAt(0))); } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }

정답

BA

BA

해설

나이를 기준으로 내림차순 정렬하면 Bob(30), Alice(25), Charlie(20) 순서이다. 같은 나이가 없으므로 thenComparing은 실제 정렬 결과에 영향을 주지 않는다. limit(2)로 Bob과 Alice만 남고, 각 이름의 첫 글자를 출력하므로 결과는 BA이다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[정보처리기사 실기] Java - Comparator 람다 정렬 Java 기출 #2644 | sqldpass