728x90
반응형
이중 배열을 정렬하고 싶은 경우 Comparator를 쓰거나 람다식을 쓰면 됩니다.
예를 들어
int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } };
위의 이중 배열의 순서를 아래와 괕이 변경하는 방법입니다.
{ { 0, 3 }, { 1, 8 } { 1, 9 }, { 2, 6 } }
먼저 Comparator로 구현하는 방법입니다.
import java.util.Arrays;
import java.util.Comparator;
int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } };
Arrays.sort(arrays, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[0] == o2[0])
return o1[1] - o2[1];
else
return o1[0] - o2[0];
}
});
다음은 람다식으로 구현하는 방법입니다.
import java.util.Arrays;
int[][] arrays = { { 0, 3 }, { 2, 6 }, { 1, 9 }, { 1, 8 } };
Arrays.sort(arrays, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o1[0] - o2[0]);
둘 다 결과적으로는 같은 방법이긴 하지만 아무래도 람다식을 이용하면 조금 더 코드가 간결해집니다.
728x90
반응형
'Programming > Java Spring' 카테고리의 다른 글
Java Map의 초기용량을 설정해야 하는 이유 (0) | 2023.03.01 |
---|---|
비주얼스튜디오 코드에서 Java Compile 하는 방법 (0) | 2022.08.11 |
[Java] Integer List int 배열로 변환하는 방법 (0) | 2022.01.25 |
[Java] Java 8 LocalDateTime 직렬화 역직렬화 오류 해결 방법 (0) | 2021.07.24 |
[Java] HashSet 사용 방법 및 개념 (0) | 2021.06.28 |