본문 바로가기
  • 더 넓은 세상을 바라보고 또 나 자신을 바라보며 그렇게 간격을 좁혀나가보자.
  • 이 길에 끝에서 바라던 나와 마주칠 수 있다면 난 너를 가득 안아줄거야.
IT 스터디/자바(JAVA)

자바의 sort를 정리

by Ryan Kim 2024. 11. 16.

정렬 메소드인 sort와 sorted의 사용 방법과 기준을 요약

정렬 메소드 요약

메소드대상기본 정렬사용자 정의 정렬 특징

Arrays.sort 배열 오름차순 Comparator 사용 가능 원시 타입에 최적화된 성능
Collections.sort List 컬렉션 오름차순 Comparator 사용 가능 리스트에 특화된 정렬 메소드
Stream.sorted 스트림 오름차순 Comparator 사용 가능 원본 데이터를 변경하지 않고 새로운 스트림 생성

 


1. Arrays.sort

  • 대상: 배열 (int[], String[], Object[] 등)
  • 용도: 배열의 요소를 정렬할 때 사용.
  • 정렬 방법: 기본적으로 오름차순으로 정렬하지만, Comparator를 사용하여 사용자 정의 기준으로 정렬할 수 있음.
  • 특징:
    • 원시 타입 배열의 경우 최적화된 정렬 알고리즘을 사용.
    • Comparator를 통해 정렬 기준을 다양하게 설정할 수 있음.

예시:

java
코드 복사
int[] numbers = {5, 2, 9, 1, 3};
Arrays.sort(numbers);  // 오름차순 정렬

String[] words = {"banana", "apple", "grape"};
Arrays.sort(words, Comparator.reverseOrder());  // 내림차순 정렬


2. Collections.sort

  • 대상: List와 같은 컬렉션 (ArrayList, LinkedList 등)
  • 용도: 리스트의 요소를 정렬할 때 사용.
  • 정렬 방법: 기본적으로 오름차순으로 정렬하며, Comparator를 사용하여 정렬 기준을 정의할 수 있음.
  • 특징:
    • 객체를 정렬할 때 리스트에 특화된 정렬 메소드.
    • 컬렉션 프레임워크에서 다양한 정렬을 쉽게 처리할 수 있도록 도와줌.

예시:

java
코드 복사
List<Integer> numberList = Arrays.asList(5, 2, 9, 1, 3);
Collections.sort(numberList);  // 오름차순 정렬

List<String> wordList = Arrays.asList("banana", "apple", "grape");
Collections.sort(wordList, Comparator.reverseOrder());  // 내림차순 정렬


3. Stream.sorted

  • 대상: 스트림 데이터
  • 용도: 스트림의 요소를 정렬할 때 사용.
  • 정렬 방법: 기본적으로 오름차순으로 정렬되며, Comparator를 사용하여 사용자 정의 기준으로 정렬 가능.
  • 특징:
    • 원본 데이터를 변경하지 않고 새로운 정렬된 스트림을 생성.
    • 다양한 스트림 연산과 결합할 수 있어 함수형 프로그래밍 스타일로 유용하게 사용 가능.

예시:

java
코드 복사
int[] numbers = {5, 2, 9, 1, 3};
List<Integer> sortedList = Arrays.stream(numbers)
                                  .boxed()  // int -> Integer로 변환
                                  .sorted()  // 오름차순 정렬
                                  .collect(Collectors.toList());

String[] words = {"banana", "apple", "grape"};
List<String> sortedWords = Arrays.stream(words)
                                  .sorted(Comparator.reverseOrder())  // 내림차순 정렬
                                  .collect(Collectors.toList());

 

'IT 스터디 > 자바(JAVA)' 카테고리의 다른 글

자바에 난무하는 compare의 정리  (0) 2024.11.16
Java 문자 입력  (1) 2016.04.06
DecimalFormat 클래스  (0) 2016.02.14
BigIntger 클래스  (0) 2016.02.14
BigInteger 사용하기  (0) 2016.02.14