对TodayTradeInfoStatisDto类,根据字符串字段fundRiskLevel降序,如果fundRiskLevel相等,就更加BigDecimal类型的字段sumAmt降序
时间: 2024-01-13 11:02:58 浏览: 69
对TodayTradeInfoStatisDto类,根据字符串字段fundRiskLevel降序,如果fundRiskLevel相等,就更加BigDecimal类型的字段sumAmt降序,可以使用Java 8中的Comparator来实现。具体步骤如下:
1. 创建一个Comparator,根据fundRiskLevel字段进行降序排序。
2. 如果fundRiskLevel相同,则根据sumAmt字段进行降序排序。
3. 使用Collections.sort()方法对列表进行排序。
以下是一个示例代码:
```java
import java.math.BigDecimal;
import java.util.*;
public class SortListByMultipleFields {
public static void main(String[] args) {
List<TodayTradeInfoStatisDto> list = new ArrayList<>();
// 添加数据
list.add(new TodayTradeInfoStatisDto("B", new BigDecimal("100")));
list.add(new TodayTradeInfoStatisDto("C", new BigDecimal("200")));
list.add(new TodayTradeInfoStatisDto("A", new BigDecimal("100")));
list.add(new TodayTradeInfoStatisDto("B", new BigDecimal("300")));
list.add(new TodayTradeInfoStatisDto("A", new BigDecimal("200")));
// 对列表进行排序
Comparator<TodayTradeInfoStatisDto> comparator = Comparator
.comparing(TodayTradeInfoStatisDto::getFundRiskLevel, Comparator.reverseOrder())
.thenComparing(TodayTradeInfoStatisDto::getSumAmt, Comparator.reverseOrder());
Collections.sort(list, comparator);
// 输出排序后的结果
System.out.println(list);
}
}
class TodayTradeInfoStatisDto {
private String fundRiskLevel;
private BigDecimal sumAmt;
public TodayTradeInfoStatisDto(String fundRiskLevel, BigDecimal sumAmt) {
this.fundRiskLevel = fundRiskLevel;
this.sumAmt = sumAmt;
}
public String getFundRiskLevel() {
return fundRiskLevel;
}
public BigDecimal getSumAmt() {
return sumAmt;
}
@Override
public String toString() {
return "TodayTradeInfoStatisDto{" +
"fundRiskLevel='" + fundRiskLevel + '\'' +
", sumAmt=" + sumAmt +
'}';
}
}
```
在这个示例中,我们首先创建了一个List,并添加了一些数据。然后使用Java 8中的Comparator,根据fundRiskLevel字段进行降序排序,如果fundRiskLevel相同,则根据sumAmt字段进行降序排序。最后使用Collections.sort()方法对列表进行排序。
阅读全文