배열의 원소가 int와 같은 primitive type(원시 타입)인 경우 오름차순 정렬만 가능합니다.
=> Arrays.sort(arr명, reverseOrder()) => 내림차순 정렬메소드 사용불가능
오름차순 정렬메소드
Arrays.sort(arr명);
그렇다면 어떻게 원시 타입 배열을 내림차순 정렬 할 수 있을까?
방법은 여러가지지만(원시 타입 배열을 참조 타입 배열로 변환), 여기서는 List로 변환 후 내림차순 해보겠습니다.
그리고 Java 8 이후부터는 Stream을 사용할 수 있는데, 아래와 같이 변환 가능합니다.
int형(원시 타입) 배열을 Integer(참조 타입)형 List로 변환코드
List<Integer> 리스트명 = Arrays.stream(int형 배열명)
.boxed()
.collect(Collectors.toList());
여기서 boxed() 메소드는 primitive Stream 값들을 Wrapper Class로 바꿔줍니다.
그 후, collect(Collectors.toList())를 이용하여, 주어진 stream을 List로 변환해 줄 수 있습니다.
double, long 등 다른 primitive 타입의 배열도 위와 같은 방법으로 List로 변환할 수 있습니다.
그 다음, Collections클래스의 sort() 메소드와 reverseOrder() 메소드를 통해 리스트를 내림차순 정렬할 수 있습니다.
// 내림차순으로 정렬
Collections.sort(리스트명, Collections.reverseOrder());
참고사이트
[Java] 배열을 List로, List를 배열로 변환하기
'Algorithm > Data Structure' 카테고리의 다른 글
[자료구조] 우선순위 큐 remove, poll 메서드에 대해 (0) | 2022.12.16 |
---|---|
[Java] 자바의 데이터 타입(primitive type, reference type) (0) | 2022.11.22 |
[Python] 힙 자료구조 / 힙큐(heapq) (0) | 2022.09.19 |
Python Deque(Double-Ended Queue) + Stack, Queue 간단개념 (0) | 2021.12.23 |
Arrays.sort ( 사전순서대로 정렬해주는 메소드) (0) | 2021.10.25 |