import java.util.*;
Array
Arrays.sort(array); // 오름차순 정렬
Arrays.sort(array, Collections.reverseOrder()); // 내림차순 정렬 - primitive type은 불가능
Arrays.sort(array, customComparator); // 커스텀 정렬
List
Collections.sort(list); // 오름차순 정렬
list.sort(Collections.reverseOrder()); // 내림차순 정렬
list.sort(customComparator); // 커스텀 정렬
Comparator
첫번째 인자가 두번째 인자보다
- 작으면 음수: first < second -> first - second < 0
- 같으면 0: first = second -> first - second = 0
- 크면 양수: first > second -> first - second > 0
list.sort(new Comparator<List<Integer>>() {
@Override
public int compare(List<Integer> o1, List<Integer> o2) {
int result = o1.get(1) - o2.get(1);
if (result == 0) {
result = o1.get(0) - o1.get(0);
}
return result;
}
});
// 람다로 변경
list.sort((o1, o2) -> {
int result = o1.get(1) - o2.get(1);
if (result == 0) {
result = o1.get(0) - o2.get(0);
}
return result;
});
// Comparator chain으로 변경
list.sort(Comparator
.comparingInt((List<Integer> o) -> o.get(1))
.thenComparingInt(o -> o.get(0))
);
기타
// key, value로 정렬해서 넣어주는 Map
Map<String, Integer> map = new TreeMap<>();
map.put("b", 1);
map.put("a", 2); // a가 b앞으로 저장됨
// 정렬해서 넣어주는 Set. 중복해서 저장할 수는 없음
Set<Integer> set = new TreeSet<>();
set.add(3);
set.add(3); // 중복을 허용하지 않기 때문에 저장되지 않음
set.add(1); // first() 호출시 1이 리턴됨
'Java' 카테고리의 다른 글
jackson의 두 라이브러리, codehaus vs fasterxml (0) | 2022.03.14 |
---|---|
Java.lang.StringBuilder (0) | 2022.03.14 |
AutoBoxing과 AutoUnboxing (0) | 2022.03.14 |
ArrayList와 LinkedList, 어떤 것을 사용해야 할까? (0) | 2022.03.14 |
Java Custom Annotation (자바 커스텀 어노테이션 만들기) (0) | 2021.07.09 |