Java출력 결과보통 · 20점#정렬#컬렉션#람다

83. Comparator로 점수 내림차순·동점 처리

다음 Java 프로그램의 실행 결과를 쓰시오.

1import java.util.ArrayList;
2import java.util.Collections;
3import java.util.List;
4
5class Player {
6 String name;
7 int score;
8
9 Player(String name, int score) {
10 this.name = name;
11 this.score = score;
12 }
13}
14
15public class Main {
16 public static void main(String[] args) {
17 List<Player> list = new ArrayList<>();
18 list.add(new Player("Mina", 70));
19 list.add(new Player("Joon", 85));
20 list.add(new Player("Ari", 70));
21 list.add(new Player("Hana", 85));
22 Collections.sort(list, (a, b) -> {
23 if (a.score != b.score) {
24 return b.score - a.score;
25 }
26 return a.name.compareTo(b.name);
27 });
28 int rank = 1;
29 for (Player p : list) {
30 System.out.println(rank++ + ":" + p.name + "(" + p.score + ")");
31 }
32 }
33}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.