[java] ArrayList <Long>을 내림차순으로 정렬하는 방법은 무엇입니까?

ArrayList<Long>Java에서 내림차순 으로 정렬하는 방법은 무엇입니까?



답변

다음은 한 가지 방법입니다 list.

list.sort(null);
Collections.reverse(list);

또는 직접 구현하여 Comparator반대 단계를 정렬하고 제거 할 수 있습니다 .

list.sort((o1, o2) -> o2.compareTo(o1));

또는 Collections.reverseOrder()후진 중이므로 더 간단하게 사용하십시오 .

list.sort(Collections.reverseOrder());


답변

Comparator<Long> comparator = Collections.reverseOrder();
Collections.sort(arrayList, comparator);


답변

아래에 주어진 다음 코드를 사용할 수 있습니다.

Collections.sort(list, Collections.reverseOrder());

또는 사용자 정의 비교기를 사용하려는 경우 아래와 같이 사용할 수 있습니다.

Collections.sort(list, Collections.reverseOrder(new CustomComparator());

CustomComparator는 목록에있는 개체를 비교하는 비교기 클래스입니다.


답변

자바 8

Java 8에서 잘하는 것은 훨씬 재미 있고 쉽습니다.

Collections.sort(variants,(a,b)->a.compareTo(b));
Collections.reverse(variants);

람다 표현이 여기에 락!

ab 를 비교 하기 위해 둘 이상의 라인 로직이 필요한 경우 다음 과 같이 작성할 수 있습니다.

Collections.sort(variants,(a,b)->{
    int result = a.compareTo(b);
    return result;
});


답변

정상적으로 정렬하고 사용 Collections.reverse();


답변

긴 값이 객체 어딘가에있는 람다의 경우 다음을 사용하는 것이 좋습니다.

.sorted((o1, o2) -> Long.compare(o1.getLong(), o2.getLong()))

또는 더 나은 :

.sorted(Comparator.comparingLong(MyObject::getLong))


답변

정렬 한 다음 뒤집습니다.