어제 오늘 내일

[Java 기초] Arrays.sort()로 배열 정렬하기 본문

IT/Java

[Java 기초] Arrays.sort()로 배열 정렬하기

hi.anna 2025. 8. 26. 12:38

 

프로그래밍에서 데이터를 정렬하는 기능은 자주 사용됩니다.
자바(Java)에서는 배열을 정렬할 때 Arrays.sort() 메서드를 활용할 수 있습니다.
이번 글에서는 기본적인 사용법부터, 문자열 정렬, 내림차순 정렬, 사용자 정의 정렬까지 정리해보겠습니다.

 

1. 기본 사용법

Arrays.sort()는 배열을 오름차순(작은 값 → 큰 값)으로 정렬합니다.

import java.util.Arrays;

public class SortExample1 {
    public static void main(String[] args) {
        int[] numbers = {5, 2, 8, 1, 3};
        Arrays.sort(numbers);
        System.out.println(Arrays.toString(numbers));
    }
}

실행 결과

[1, 2, 3, 5, 8]

👉 숫자 배열은 기본적으로 오름차순 정렬됩니다.

 

2. 문자열 배열 정렬

문자열 배열도 마찬가지로 사전순으로 정렬됩니다.

import java.util.Arrays;

public class SortExample2 {
    public static void main(String[] args) {
        String[] fruits = {"Banana", "Apple", "Cherry"};
        Arrays.sort(fruits);
        System.out.println(Arrays.toString(fruits));
    }
}

실행 결과

[Apple, Banana, Cherry]

👉 대문자가 소문자보다 먼저 정렬된다는 점에 주의하세요. ("Apple"이 "banana"보다 앞에 옴)

 

3. 내림차순 정렬

Arrays.sort()는 기본적으로 오름차순만 제공합니다.
내림차순으로 정렬하려면 **Comparator**를 사용해야 합니다.

import java.util.*;

public class SortExample3 {
    public static void main(String[] args) {
        Integer[] numbers = {5, 2, 8, 1, 3};
        Arrays.sort(numbers, Comparator.reverseOrder());
        System.out.println(Arrays.toString(numbers));
    }
}

실행 결과

[8, 5, 3, 2, 1]

👉 기본형 int[]는 Comparator를 사용할 수 없으므로, **래퍼 클래스 Integer[]**를 사용해야 합니다.

 

4. 사용자 정의 정렬 (Comparator)

객체 배열을 정렬할 때는 Comparator를 이용해 정렬 기준을 직접 정의할 수 있습니다.

import java.util.*;

class Person {
    String name;
    int age;
    Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString() {
        return name + "(" + age + ")";
    }
}

public class SortExample4 {
    public static void main(String[] args) {
        Person[] people = {
            new Person("Kim", 25),
            new Person("Lee", 30),
            new Person("Park", 20)
        };

        // 나이 오름차순 정렬
        Arrays.sort(people, Comparator.comparingInt(p -> p.age));

        System.out.println(Arrays.toString(people));
    }
}

실행 결과

[Park(20), Kim(25), Lee(30)]

👉 Comparator.comparingInt()를 사용하면 나이 기준으로 정렬할 수 있습니다.

 

5. 부분 정렬

배열 전체가 아니라 일부 구간만 정렬할 수도 있습니다.

import java.util.Arrays;

public class SortExample5 {
    public static void main(String[] args) {
        int[] numbers = {9, 7, 5, 3, 1};

        // 인덱스 1부터 4 직전까지 정렬
        Arrays.sort(numbers, 1, 4);

        System.out.println(Arrays.toString(numbers));
    }
}

실행 결과

[9, 3, 5, 7, 1]

👉 Arrays.sort(arr, fromIndex, toIndex)는 fromIndex 포함, toIndex 미포함 범위를 정렬합니다.

 

6. 정리

  • 기본 정렬: Arrays.sort(arr) → 오름차순
  • 문자열 정렬: 사전순 (대문자 먼저)
  • 내림차순 정렬: Arrays.sort(arr, Comparator.reverseOrder()) (객체 배열만)
  • 사용자 정의 정렬: Comparator 활용
  • 부분 정렬: Arrays.sort(arr, from, to):

Arrays.sort()는 배열 정렬의 기본 도구이며, Comparator를 함께 사용하면 내림차순이나 사용자 정의 정렬도 가능합니다.

 

 

반응형
Comments