【问题标题】:Sorting Descending Order [duplicate]降序排序[重复]
【发布时间】:2020-10-12 08:03:52
【问题描述】:

这个问题问的是除了Collections.reverse()之外的另一种排序方法。

我也想按升序和降序对列表进行排序。我想在不使用覆盖方法的情况下做到这一点。我试过Collections.reverse()。它工作得很好。但我想找到另一种方法。任何人都可以帮助我吗?

 Collections.sort(list, (Comparator.<ModelPortfolioDTO>
                        comparingDouble(mp1 -> Double.parseDouble(mp1.getSharpRatio()))
                        .thenComparingDouble(mp2 -> Double.parseDouble(mp2.getSharpRatio()))));

【问题讨论】:

标签: java list sorting


【解决方案1】:

collections.sort 方法接受 comparator,它有一个 sort 方法。该方法的 javadoc 提供了答案:

作为第一个参数的负整数、零或正整数小于、等于或大于第二个参数。

所以通过改变返回的值,你可以改变顺序。您可以编写自己的代码或使用原始类型实现(因为您是通过双精度值排序的)。升序:

 @Override
    public int compare(ModelPortfolioDTO o1, ModelPortfolioDTO o2) {
        return Double.compare(Double.parseDouble(o1.getSharpRatio()), Double.parseDouble(o2.getSharpRatio()));
    }

降序(注意元素的倒序):

 @Override
public int compare(ModelPortfolioDTO o1, ModelPortfolioDTO o2) {
    return Double.compare(Double.parseDouble(o2.getSharpRatio()), Double.parseDouble(o1.getSharpRatio()));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2018-08-14
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    相关资源
    最近更新 更多