Arrays 클래스 에서 오름차순으로 정렬하는 방법과 같이 내림차순으로 배열을 정렬하는 쉬운 방법이 있습니까? 있습니까?
아니면 게으르지 말고 스스로해야합니다. [
답변
이것을 사용하여 모든 종류의 객체를 정렬 할 수 있습니다
sort(T[] a, Comparator<? super T> c)
Arrays.sort(a, Collections.reverseOrder());
Arrays.sort()
기본 배열을 내림차순으로 정렬하는 데 직접 사용할 수 없습니다. 에 Arrays.sort()
의해 정의 된 역 비교기를 전달 하여 메소드 를 호출하려고 Collections.reverseOrder()
하면 오류가 발생합니다.
sort (int [], comparator)에 적합한 메소드가 없습니다.
Integer 배열과 같은 ‘Array of Objects’에서는 제대로 작동하지만 int 배열과 같은 기본 배열에서는 작동하지 않습니다.
기본 배열을 내림차순으로 정렬하는 유일한 방법은 먼저 배열을 오름차순으로 정렬 한 다음 배열을 제자리로 뒤집는 것입니다. 이것은 2 차원 프리미티브 배열에도 적용됩니다.
답변
목록을 위해
Collections.sort(list, Collections.reverseOrder());
배열
Arrays.sort(array, Collections.reverseOrder());
답변
이것을 사용할 수 있습니다 :
Arrays.sort(data, Collections.reverseOrder());
Collections.reverseOrder()
Comparator
역 자연 순서를 사용하여를 반환합니다 . 를 사용하여 자신의 비교기의 역 버전을 얻을 수 있습니다 Collections.reverseOrder(myComparator)
.
답변
대안이 될 수 있습니다 (숫자 !!!)
- 배열에 -1을 곱합니다
- 종류
- -1로 다시 한번 곱하십시오
말 그대로 :
array = -Arrays.sort(-array)
답변
명시 적 비교기가없는 경우 :
Collections.sort(list, Collections.reverseOrder());
명시 적 비교기 :
Collections.sort(list, Collections.reverseOrder(new Comparator()));
답변
자바 8 :
Arrays.sort(list, comparator.reversed());
업데이트 :
reversed()
지정된 비교기를 되돌립니다. 일반적으로 비교기는 오름차순으로 정렬되므로 순서가 내림차순으로 바뀝니다.
답변
프리미티브 요소를 포함하는 배열의 경우 org.apache.commons.lang(3)
(정렬 후) 배열을 쉽게 되돌릴 수있는 쉬운 방법 이 있다면 다음 을 사용하는 것입니다.
ArrayUtils.reverse(array);