[Java] 배열(array) 오름차순 / 내림차순 정렬 Arrays.sort()

리트리버J

·

2020. 12. 27. 14:06

728x90

버블정렬, 선택정렬 등 기본적으로 for문을 사용하여 정렬을 할 수 있지만, 우리에겐 Arrays.sort()가 존재한다.

이 메소드를 이용하면 오름차순 / 내림차순이 간단하게 가능하다.

 

오름차순 정렬
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.codeup;
 
import java.util.Arrays;
 
public class CodeUp100 {
 
    public static void main(String[] args) {
        
        int[] arr = {1,5,2,4,3};
        
        Arrays.sort(arr);
        
        System.out.println(Arrays.toString(arr));
    }
}
cs

 

오름차순 정렬 완료.

 

오름차순은 sort()메소드의 파라미터로 배열만 넣어주면 되지만 내림차순은 그렇게 간단하지 않다.

천천히 내림차순 정렬을 진행해보자.

 

내림차순 정렬

sort()에 파라미터가 1개가 아니라 2개인 메소드가 있다.

심지어 기본자료형 배열의 인자가 아닌 클래스 타입의 배열이다. ( T[] )

또한, Comparator<? super T>라는 인자도 함께 한다.

일단 T[]에 집중하자.

 

int[] 을 Integer[]로 변환시켜야 한다.

Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);

을 통해 변환시켜주고,

Arrays.sort(integerArr, Comparator.reverseOrder());

을 통해 역순으로 정렬해주면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.codeup;
 
import java.util.Arrays;
import java.util.Comparator;
 
public class CodeUp100 {
 
    public static void main(String[] args) {
        
        int[] arr = {1,5,2,4,3};
        
        Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new);
        
        Arrays.sort(integerArr, Comparator.reverseOrder());
        
        System.out.println(Arrays.toString(integerArr));
    }
}
cs

내림차순 정렬 완료

 

변환과정과 Comparator에 대한 설명은 나중에 추가하겠습니다.

 

728x90