Reverse a comparator in Java 8

后端 未结 4 748
轻奢々
轻奢々 2020-11-28 08:43

I have an ArrayList and want sort it in descending order. I use for it java.util.stream.Stream.sorted(Comparator) method. Here is a description according Java A

4条回答
  •  遥遥无期
    2020-11-28 09:02

    You can use Comparator.reverseOrder() to have a comparator giving the reverse of the natural ordering.

    If you want to reverse the ordering of an existing comparator, you can use Comparator.reversed().

    Sample code:

    Stream.of(1, 4, 2, 5)
        .sorted(Comparator.reverseOrder()); 
        // stream is now [5, 4, 2, 1]
    
    Stream.of("foo", "test", "a")
        .sorted(Comparator.comparingInt(String::length).reversed()); 
        // stream is now [test, foo, a], sorted by descending length
    

提交回复
热议问题