정렬 메소드인 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 |