Java 8で比較演算子を反転する 質問する

Java 8で比較演算子を反転する 質問する

ArrayList があり、それを降順で並べ替えたいと考えています。そのためにメソッドを使用しますjava.util.stream.Stream.sorted(Comparator)。Java API による説明は次のとおりです。

指定された に従ってソートされた、このストリームの要素で構成されるストリームを返しますComparator

このメソッドは昇順の並べ替えを返します。降順だけにするにはどのパラメータを変更する必要がありますか?

ベストアンサー1

使用できますComparator.reverseOrder()自然な順序の逆を返す比較器を持つこと。

既存のコンパレータの順序を逆にしたい場合は、Comparator.reversed()

サンプルコード:

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

おすすめ記事