2차원 배열을 정렬하는 방법

Comparator 을 오버라이딩하여 정렬 기준을 제시하면 된다.

 

 

1) 첫번째 요소를 고려해서 정렬한다면

 

arr { {1,3}, {2,5}, {1,1} } 일 때

Arrays.sort(arr, Comparator.comparingInt(o1->o1[0]));

하게 되면 arr{ {1,3}, {1,1}, {2,5} } 이렇게 오름차순으로 정렬된다.

 

 

2) 두번째 요소도 같이 고려하고 싶다면

Arrays.sort(arr, (o1,o2) -> {
	if(o1[0] == o2[0]){ // 0번째 요소가 같으면 1번 째 요소로 비교
    	return Integer.compare(o1[1], o2[1]);
    }
    else { // 요소 비교
    	return Integer.compare(o1[0], o2[0]);
    }
});

하게 되면 arr { {1,1}, {1,3}, {2,5} } 가 오게 된다.

 

 

 

문자열 배열 비교 방법

Arrays.sort(tickets, new Comparator<String[]>() {
            @Override
            public int compare(String[] o1, String[] o2) {
                return o1[1].compareTo(o2[1]);
            }
        });

위와 같이 하면 a ~ z 순으로 정렬하게 됩니다.

'JAVA' 카테고리의 다른 글

JAVA Enum 에러  (0) 2023.04.09
stream 활용해 list 최소, 최대값 구하기  (0) 2022.11.20
Queue와 BFS  (1) 2022.09.30
정렬과 lambda  (0) 2022.09.29
PriorityQueue ( 우선순위큐 )  (0) 2022.09.27

+ Recent posts