어제 오늘 내일

[Java 기초] Arrays.sort() vs Collections.sort() 차이 정리 본문

IT/Java

[Java 기초] Arrays.sort() vs Collections.sort() 차이 정리

hi.anna 2025. 8. 27. 00:40

 

자바에서 정렬을 할 때 흔히 사용하는 두 가지 방법이 있습니다.

  • Arrays.sort()
  • Collections.sort()

둘 다 배열이나 컬렉션을 정렬할 때 쓰이지만, 적용 대상과 내부 동작에서 차이가 있습니다.

 

1. Arrays.sort()

  • 대상: 배열(array)
  • 위치: java.util.Arrays 클래스에 포함
  • 사용법: Arrays.sort(배열)
import java.util.Arrays;

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

출력 결과

[1, 2, 3, 4, 5]

👉 **배열 자료형(int[], String[] 등)**을 정렬할 때 사용합니다.

 

2. Collections.sort()

  • 대상: 리스트(List)
  • 위치: java.util.Collections 클래스에 포함
  • 사용법: Collections.sort(리스트)
import java.util.*;

public class CollectionsSortExample {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(5, 3, 1, 4, 2);
        Collections.sort(list);
        System.out.println(list);
    }
}

출력 결과

[1, 2, 3, 4, 5]

👉 List, ArrayList, LinkedList 같은 컬렉션 자료구조를 정렬할 때 사용합니다.

 

3. 주요 차이점 비교

구분 Arrays.sort() Collections.sort()

적용 대상 배열(array) 리스트(List)
소속 클래스 java.util.Arrays java.util.Collections
반환 값 없음 (원본 배열 수정) 없음 (원본 리스트 수정)
지원 타입 기본형 배열(int[], double[] 등), 객체 배열 객체 타입 리스트 (List<T>)
정렬 기준 기본 오름차순, Comparator 가능 기본 오름차순, Comparator 가능

 

4. Comparator 활용 예시

두 메서드 모두 Comparator를 사용해서 사용자 정의 정렬이 가능합니다.

Arrays.sort() + Comparator

import java.util.*;

public class ArraysComparatorExample {
    public static void main(String[] args) {
        String[] arr = {"banana", "apple", "cherry"};
        Arrays.sort(arr, Comparator.reverseOrder());
        System.out.println(Arrays.toString(arr));
    }
}

출력 결과

[cherry, banana, apple]

Collections.sort() + Comparator

import java.util.*;

public class CollectionsComparatorExample {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("banana", "apple", "cherry");
        Collections.sort(list, Comparator.reverseOrder());
        System.out.println(list);
    }
}

출력 결과

[cherry, banana, apple]

👉 동작은 같지만, 정렬 대상이 배열이냐 리스트냐에 따라 선택하는 메서드가 달라집니다.

 

5. 정리

  • 배열을 정렬할 때 → Arrays.sort()
  • 리스트를 정렬할 때 → Collections.sort()
  • 둘 다 원본을 변경 (새로운 배열이나 리스트를 반환하지 않음)
  • 둘 다 Comparator를 사용하면 원하는 기준으로 정렬 가능

Arrays.sort()는 배열용, Collections.sort()는 리스트용 정렬 메서드입니다.

 

 

반응형
Comments