Javaの8 - コンパレータを使用して、異なる順序で複数のフィールドを比較

VinPro:

私は、Java 8を使用するようにComparatorソートするためにList3つのプロパティに基づいてオブジェクトのを。名前の昇順、降順年齢、市の昇順-要件は、この順でソートすることです。私が使用している場合はreversed()年齢`でそれ以前に同様の項目を並べ替え反転します。ここで私が試したものです:

Comparator.comparing((Person p) -> p.getName())
          .thenComparingInt(p -> p.getAge())
          .reversed()
          .thenComparing(p -> p.getCity());
shmosel:

用途Comparator.reverseOrder()

.thenComparing(Person::getAge, Comparator.reverseOrder())

あなたはオートボクシングを避けたい場合は、行うことができます

.thenComparing((p1, p2) -> Integer.compare(p2.getAge(), p1.getAge()))

若しくは

.thenComparing(Comparator.comparingInt(Person::getAge).reversed())

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=164137&siteId=1