주니봉
  • [JAVA] 2차원 배열 정렬 Arrays.sort
    2021년 04월 23일 23시 33분 51초에 업로드 된 글입니다.
    작성자: 봉주니

    1차원 배열의 경우, 아래와 같이 오름차순으로 정렬이 된다.

    Arrays.sort(arr)

    하지만 2차원의 경우에는 compare 함수를 써주면 간단하다.

    아래와 같은 2차원 배열이 있다고 가정하면

    int[][] arr = {{2,5},{1,5},{1,4}}

    아래와 같이 정렬할 수 있다.

     

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

    0번째 값을 기준으로 compare을 하는 것을 의미한다. 

    하지만 0만 기준으로 하면, 아래와 같이 보일 수 있다.

    {{1,5},
     {1,4},
     {2,5}}

    따라서, 0번째가 같을때 두번째 요소를 이용하여 정렬을 하면 된다.

    0번째가 같으면 1번째를 비교하고, 다른 경우에는 그냥 0번째로 비교한다.

    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]);
        }
    });

     

    반응형

    'Java' 카테고리의 다른 글

    [JAVA] PKIX path building failed 오류 무시하기  (0) 2022.03.16
    [JAVA] Class 파일 decompile  (0) 2021.08.11
    [Java] Integer와 int의 차이  (0) 2021.04.21
    [JAVA] BigInteger  (0) 2021.04.01
    [JAVA] X-Frame-Options deny  (0) 2021.03.12
    댓글