신한DS 금융SW 아카데미/Java
자바) Comparator.reverseOrder(), Collections.reverseOrder()
hpehpeyy
2025. 4. 15. 12:23
Comparator.reverseOrder()
- Comparator.reverseOrder()는 Comparator 인터페이스를 구현하는 객체에 대한 내림차순 정렬을 위한 메서드입니다.
- 이 메서드는 Comparator 객체를 반환합니다. 반환된 Comparator는 주어진 자료형에 대해 내림차순으로 정렬하는 기준을 제공합니다.
- 주로 Arrays.sort()나 Collections.sort()와 같은 정렬 메서드에서 Comparator를 사용해 정렬 기준을 지정할 때 사용됩니다.
예시
// 내림차순 정렬 System.out.println(Arrays.toString(arr)); // [9, 5, 4, 3, 1, 1]
Integer[] arr = {3, 1, 4, 1, 5, 9}; Arrays.sort(arr, Comparator.reverseOrder());
Collections.reverseOrder()
- Collections.reverseOrder()는 Comparator 객체를 반환하는 유틸리티 메서드로, 주로 Collections 클래스와 관련된 작업에서 사용됩니다.
- 이 메서드는 Comparable 인터페이스를 구현하는 자료형에 대해 내림차순으로 정렬할 수 있도록 Comparator를 반환합니다.
- Comparator.reverseOrder()와 기능적으로는 동일하지만, Collections.reverseOrder()는 Collections 클래스에서 직접 사용할 때 주로 쓰입니다.
예시
List<Integer> list = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9));
Collections.sort(list, Collections.reverseOrder()); // 내림차순 정렬
System.out.println(list); // [9, 5, 4, 3, 1, 1]
차이점
- Comparator.reverseOrder(): Comparator 객체를 반환하여, 다양한 자료형에 대해 내림차순 정렬을 적용할 수 있도록 합니다. 주로 Arrays.sort() 또는 Collections.sort()와 함께 사용됩니다.
- Collections.reverseOrder(): Collections 클래스에서 제공하는 메서드로, 주로 List를 정렬할 때 사용됩니다. 반환된 Comparator는 Comparable을 구현한 자료형에 대해 내림차순 정렬을 제공합니다.
주요 용도 | 배열이나 컬렉션에 대해 내림차순 정렬을 수행 | List에 대해서 내림차순 정렬을 수행 |
사용 대상 | Arrays.sort(), Collections.sort()에서 모두 사용 가능 | 주로 List 컬렉션에 사용 |
반환 객체 | Comparator 객체 반환 | Comparator 객체 반환 |
적용 대상 자료형 | Comparable을 구현한 모든 객체 | Comparable을 구현한 객체에만 적용 (예: Integer, String) |
예시 코드 | Arrays.sort(arr, Comparator.reverseOrder()); | Collections.sort(list, Collections.reverseOrder()); |
두 메서드는 내림차순 정렬을 위한 Comparator 객체를 반환하지만, 사용되는 상황에 따라 Collections.reverseOrder()는 주로 List 관련 작업에서 사용되고, Comparator.reverseOrder()는 보다 일반적인 Comparator를 사용할 때 쓰입니다.