如何在Java中按两个字段排序并指定排序方向?

kim*_*815 1 java sorting java-8

我有一个对象列表,我想使用两个属性对其进行排序.我在互联网上搜索过,我在java 8中找到了这个解决方案.

class ClassA {
    String var2; 
    String var1;
    // getters and setters
}

List<classA> list;
list.sort(Comparator.comparing(ClassA::getVar1).thenComparing(ClassA::getVar2));
Run Code Online (Sandbox Code Playgroud)

这绝对有效,但我想要的是在var2上使用降序排序,在var1上使用升序排序.

Eug*_*ene 5

就像添加reversed... 一样简单

list.sort(Comparator.comparing(ClassA::getVar1)
                   .thenComparing(Comparator.comparing(ClassA::getVar2).reversed()));
Run Code Online (Sandbox Code Playgroud)

  • @ kimo815谨慎提供你究竟是什么意思的最小例子? (2认同)