Comparator 활용을 통해 커스텀 정렬을 하는 것은 유용하다.
단, 기본형은 커스텀 정렬이 불가능하다. 물론, 아예 불가능한 것은 아닌 것이.. List 등으로 데이터를 넘긴 뒤 List.sort(...);는 가능하다.
코딩테스트에서 유용하게 사용할 수 있는 Comparator을 ide 없이 사용할 수 있도록 연습을 해보려고 한다..!
1. Arrays.sort()로 커스텀 정렬을 하는 경우
임의의 배열 (기본형 X) 혹은 다차원 배열 등을 정렬하는 경우 쓸 수 있다.
People[] people=new People[100]; // People이라는 임의의 class가 존재한다고 가정
people=...;
Arrays.sort(people, new Comparator<People>() {
@Override
public int compare(People p1, People p2) {
return p1.age - p2.age;
}
});
String[] str;
Arrays.sort(str, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
String 배열은 기본형이 아니지만 너무 자주 사용해서 기본형이라고 착각하게 되는 Magic ..
꼭 잊지말자 ^___^
참고로 Comparator<String>의 경우, compareTo()를 이용하여 사전순 정렬을 할 수 있는데,
return s1.length() - s2.length(); 같은 경우도 가능하다.
정말이지 커스텀 정렬에는 너무나도 유용한 Comparator이다!! 🥹
2. List.sort()로 커스텀 정렬을 하는 경우
List를 정렬할 수 있다.
people.sort(new Comparator<Integer>(){ // List<Integer>형의 people이 존재한다고 가정
@Override
public int compare(Integer i1, Integer i2) {
return i2 - i1;
}
});'🤓 공부' 카테고리의 다른 글
| git workflow : 오류 및 해결방법 (0) | 2024.04.07 |
|---|---|
| 백준 코딩테스트 설명회 : 시간 복잡도와 우선순위 큐 (1) | 2024.04.07 |
| 알고리즘 : BinarySearch 이진 탐색 (0) | 2024.04.03 |
| 알고리즘 : BFS (2) 실습! 코딩테스트 풀이 도전 (0) | 2024.03.22 |
| 알고리즘 : BFS (1) 넓이 탐색 알고리즘이란 무엇인가 (0) | 2024.03.20 |