java 集合中对象 按照多个属性正序倒序同时排序排列
realCloudProviderAccountGroupDtos 是逻辑处理上的集合想分别按照code 和scope两个属性,同时倒序排列,增加reversed(),去掉表示正序排列realCloudProviderAccountGroupDtos = realCloudProviderAccountGroupDtos.stream().sorted(Comparator.comparing(C
·
realCloudProviderAccountGroupDtos 是逻辑处理上的集合
想分别按照code 和scope两个属性,同时倒序排列,增加reversed(),去掉表示正序排列
realCloudProviderAccountGroupDtos = realCloudProviderAccountGroupDtos.stream()
.sorted(Comparator.comparing(CloudProviderAccountGroupDto::getCode).reversed().thenComparing(CloudProviderAccountGroupDto::getScope).reversed())
.collect(Collectors.toList());
也可以根据自己的实际情况,自由组合正序还是倒序排列,也可以增加想排序的属性即可。
上面的排序适用于两个属性都是字符串类型,如果有integer类型属性发现不可以直接使用,需要下面的方法:
list = list.stream()
.sorted(Comparator.comparing(RebateMonthRange::getCloudVendor).thenComparing(
(discountConfig1, discountConfig2) -> {
int diff = discountConfig1.getValidStartMonth().intValue() - discountConfig2.getValidStartMonth().intValue();
if (diff > 0) {
return 1;
}else if (diff < 0) {
return -1;
}
return 0; //相等为0
}
))
.collect(Collectors.toList());
一定注意,排序厚是重新生成了新的集合对象,原来的集合排序不会变化,所以使用时候注意下! 更多推荐
所有评论(0)