아래와 같이 Collections 프레임워크를 사용해 sort메서드로 2차원 배열에서 정렬을 하려고 하니,
int[][] arr = new int[10][2];
Arrays.sort(arr);
i cannot be cast to java.lang.comparable
해당 오류가 발생했다.

찾아보니, 2차원 배열은 2차원에서의 비교대상이 없기 때문에 이와 같은 오류가 발생하는 것이었다.
그래서 추가한 코드는 아래와 같다!
Arrays.sort(arr,(o1,o2) ->{
if(o1[0] == o2[0]){
return Integer.compare(o1[1],o2[1]);
}else{
return Integer.compare(o1[0],o2[0]);
}
});
해설)
1차원이 동일한 경우는 2차원끼리 비교하고, 그렇지 않을 경우는 1차원에서만 비교한다.
ex) [2,2] [2,3] => 1차원이 동일하여 2차원의 비교가 필요함
'java' 카테고리의 다른 글
| [java] 커스텀해서 추상화된 예외처리 하기 (0) | 2023.08.17 |
|---|---|
| [java]자바 스케줄러_스레드를 다중으로 생성하여 유지하는 방법(feat.ThreadPoolTaskScheduler) (0) | 2023.08.08 |
| [java] java로 html 파일 생성하기(feat.자바의 환경 설정 정보 불러오기) (0) | 2023.06.06 |