Programming/JAVA

[Java] 배열, 콜렉션 정렬하는 방법에 대해 알아보기

노 코딩 노 라이프 2024. 4. 2. 10:53

자바에서는 다양한 방법으로 배열과 컬렉션을 정렬할 수 있는데요.
가장 일반적인 방법은 Arrays.sort()Collections.sort() 메서드를 사용하는 것입니다!
하지만 이 외에도 Comparator와 Comparable 인터페이스를 구현하여 사용자 정의 정렬 기준을 지정할 수도 있는데요.
아래에서 각각의 방법을 설명해보도록 하겠습니다!


 

1. 배열 정렬

Arrays.sort()

  • 배열을 정렬합니다.
  • 기본적으로 오름차순으로 정렬됩니다.
  • Comparable 인터페이스를 구현한 객체의 배열은 기본 정렬 기준에 따라 정렬됩니다.
int[] array = {3, 1, 4, 1, 5, 9, 2, 6};
Arrays.sort(array); // 오름차순으로 정렬

사용자 정의 Comparator를 이용한 배열 정렬

  • Comparator 인터페이스를 구현하여 사용자 정의 정렬 기준을 지정할 수 있습니다.
Integer[] array = {3, 1, 4, 1, 5, 9, 2, 6};
Arrays.sort(array, Comparator.reverseOrder()); // 내림차순으로 정렬

 


 

2. 컬렉션 정렬

Collections.sort()

  • List, Set 및 Queue와 같은 컬렉션을 정렬합니다.
  • 기본적으로 오름차순으로 정렬됩니다.
  • Comparable 인터페이스를 구현한 객체의 컬렉션은 기본 정렬 기준에 따라 정렬됩니다.
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(4);
Collections.sort(list); // 오름차순으로 정렬

사용자 정의 Comparator를 이용한 컬렉션 정렬

  • Comparator 인터페이스를 구현하여 사용자 정의 정렬 기준을 지정할 수 있습니다.
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Collections.sort(list, Comparator.comparing(String::length)); // 길이를 기준으로 정렬

 


 

3. Comparable 인터페이스 구현

  • Comparable 인터페이스를 구현하여 객체의 기본 정렬 순서를 정의할 수 있습니다.
class Person implements Comparable<Person> {
    private String name;
    private int age;

    // Constructor, getters, setters

    @Override
    public int compareTo(Person otherPerson) {
        return this.age - otherPerson.age; // 나이를 기준으로 오름차순 정렬
    }
}

 

이렇게 정의된 Comparable 인터페이스를 구현한 클래스는 Arrays.sort()Collections.sort()를 사용하여 정렬할 수 있습니다.

이상으로 자바에서 배열과 컬렉션을 정렬하는 여러 가지 방법에 대해 알아보았습니다.