1) Comparator 익명 클래스 구현
//1. Comparator
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0]; //0번째 요소를 기준으로 오름차순 정렬
//return o2[0] - o1[0]; //0번째 요소를 기준으로 내림차순 정렬
}
});
2) 람다식 사용
//2. 람다식
Arrays.sort(arr, (o1, o2) -> o1[0] - o2[0]); //0번째 요소를 기준으로 오름차순 정렬
//Arrays.sort(arr, (o1, o2) -> o2[0] - o1[0]); //0번째 요소를 기준으로 내림차순 정렬
다중조건
//0번째 요소를 기준으로 오름차순 정렬, 0번째 요소가 같다면 1번째 요소를 기준으로 내림차순 정렬
//1. Comparator
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[0] == o2[0]) {
return o2[1] - o1[1];
} else {
return o1[0] - o2[0];
}
}
});
//2. 람다식
Arrays.sort(arr, (o1, o2) -> o1[0] == o2[0] ? o2[1] - o1[1] : o1[0] - o2[0]);
Double형 2차원 배열 정렬
//1. Comparator
Arrays.sort(arr, new Comparator<double[]>() {
@Override
public int compare(double[] o1, double[] o2) {
return Double.compare(o1[1], o2[1]); //오름차순
//return Double.compare(o2[1], o1[1]); //내림차순
}
});
//2. 람다식
Arrays.sort(arr, (o1, o2) -> Double.compare(o1[1], o2[1])); //오름차순
//Arrays.sort(arr, (o1, o2) -> Double.compare(o2[1], o1[1])); //내림차순
[참고]
'Java' 카테고리의 다른 글
[Java] 오버로딩과 오버라이딩(Overloading & Overriding) (0) | 2024.09.10 |
---|---|
[Java] 자바 Queue에 x, y 값 두 개 삽입(Pair 클래스, Point 클래스) (0) | 2024.08.23 |
[Java] 빠른 입출력 BufferedReader & BufferedWriter (0) | 2024.06.19 |
[Java] JDK 버전 여러 개 전환하며 사용하기 (0) | 2024.05.13 |
[Java] Math 클래스 (0) | 2024.04.17 |