int 배열을 내림차순으로 정렬하고자 했다.
Comparator에 Collections.reverseOrder()
를 사용하려고 한 순간 오류가 발생했다.
public String solution(int[] numbers) {
Arrays.sort(numbers, Collections.reverseOrder());
}
https://darkstart.tistory.com/209
✅ primitive 타입에 대한 Comparator가 없기 때문에
Comparator는 원시 타입인 int 배열에서는 사용할 수 없고, 객체(Integer) 배열에서는 사용 가능함
따라서 Comparator를 사용하기 위해서 int[] → Integer[]로 바꾸던가, Comparator를 사용하지 않고, 정렬 알고리즘을 통해 int[]을 따로 정렬해야 한다.
정렬 알고리즘을 사용하기 보다는, int[]
을 Integer[]
또는 List<Integer>
로 바꿔보겠다.
Integer[] newArray = Arrays.stream(array).boxed().toArray(Integer[]::new);
Arrays.sort(newArray, Collections.reverseOrder());
<Integer>
https://stackoverflow.com/questions/1073919/how-to-convert-int-into-listinteger-in-java
List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());
list.sort(Comparator.reverseOrder());
즉, 원시 타입의 배열을 객체 타입의 배열로 바꾸고, Comparator를 사용하자!
정렬에 관련된 내용은 여기에 따로 정리했다.