hanker

[Java] 배열 안에 데이터 정렬하기 (Arrays.sort) 본문

JAVA

[Java] 배열 안에 데이터 정렬하기 (Arrays.sort)

hanker 2025. 6. 28. 13:46
반응형

Java에서 배열안에 데이터를 정렬하는 방법에 대해서 알아보자.

 

 


1. Arrays.sort() 

 

가장 간단하면서 일반적인 방법인 Arrays.sort() 메서드를 알아보자.

 

기본 타입 배열 정렬

public class Main {
    public static void main(String[] args) throws Exception {
        // 정수 배열 정렬
        int[] numbers = {5, 2, 8, 1, 9, 3};
        Arrays.sort(numbers);
        System.out.println("정렬된 정수 배열: " + Arrays.toString(numbers));

        // 문자열 배열 정렬
        String[] names = {"A", "D", "S", "C"};
        Arrays.sort(names);
        System.out.println("정렬된 문자열 배열: " + Arrays.toString(names));
    }
}

Arrays.sort() 결과

 

부분 배열 정렬

배열의 특정 구간만 정렬하기 위해 시작 인덱스와 끝 인덱스를 지정해서 정렬을 한다.

public class Main {
    public static void main(String[] args) throws Exception {
        int[] numbers = {5, 2, 8, 1, 9, 3, 7, 4};
        Arrays.sort(numbers, 2, 6); // 인덱스 2부터 5까지 정렬
        System.out.println(Arrays.toString(numbers));
    }
}

시작 인덱스와 끝 인덱스
부분 배열 정렬 결과

 

 


2. 내림차순 정렬

 

기본 타입 배열을 내림차순으로 정렬해보자.

 

Collections.reverseOrder() 사용

public class Main {
    public static void main(String[] args) throws Exception {
        // Integer 배열 (wrapper class)
        Integer[] numbers = {5, 2, 8, 1, 9, 3};
        Arrays.sort(numbers, Collections.reverseOrder());
        System.out.println("내림차순 정렬: " + Arrays.toString(numbers));
    }
}

내림차순 정렬 결과 값

 

기본 타입(오름차순)으로 정렬 후 뒤집기

public class Main {
    public static void main(String[] args) throws Exception {
        int[] numbers = {5, 2, 8, 1, 9, 3};
        Arrays.sort(numbers);
        // 배열 뒤집기
        for (int i = 0; i < numbers.length / 2; i++) {
            int temp = numbers[i];
            numbers[i] = numbers[numbers.length - 1 - i];
            numbers[numbers.length - 1 - i] = temp;
        }
        System.out.println("내림차순 정렬: " + Arrays.toString(numbers));
    }
}

내림차순 정렬 결과 값(2)

 


정리

 

Java의 Arrays.sort()는 내부적으로 아래와 같은 알고리즘을 사용한다.

 

  • 기본 타입 배열: Dual-Pivot Quicksort (평균 O(n log n))
  • 객체 배열: TimSort (최악의 경우에도 O(n log n) 보장)

보다 더 복잡한 정렬 조건이 필요하다면 comparator를 사용하면 된다.

 

 

 

반응형