java排序

本文介绍了Java中实现列表排序的三种方法:第一种利用list自带的sort方法,根据升序或降序进行排序;第二种使用Comparator对Map进行排序,同样支持自定义升序或降序;第三种通过Stream API对List进行排序,同样支持流式操作完成正序或倒序排列。这些方法适用于处理数值类型的排序需求。
摘要由CSDN通过智能技术生成

排序的三种方法:

list排序,sort为目标排序字段,order为正序或倒序
list.sort((o1,o2) -> {
    Double a = Double.parseDouble(o1.get(sort).toString());
    Double b = Double.parseDouble(o2.get(sort).toString());
    if ("DESC".equalsIgnoreCase(order)) {
        return b.compareTo(a);
    }else {
        return a.compareTo(b);
    }
});
第二种:map依据某字段排序,默认正序,逐渐变大
Comparator<Map<String, Object>> bySortAsc = Comparator.comparing(x -> {
    if (x.get(sort) != null && NumberUtils.isNumber(x.get(sort).toString())) {
        return Double.parseDouble(x.get(sort).toString());
    }
    return 0.0;
});
if (AllStaticInfo.SortType.DESC.equalsIgnoreCase(order)) {
    bySortAsc = bySortAsc.reversed();
}
resultData.sort(bySortAsc);
第三种:List用stream流排序
List<StatisticsNodeOrderVo> statisticsOrder = new ArrayList<>();
List<StatisticsNodeOrderVo> orderList orderList = statisticsOrder.stream().sorted(Comparator.comparing(StatisticsNodeOrderVo::getValueStr, Comparator.comparingDouble(Double::parseDouble))).collect(Collectors.toList());
List<StatisticsNodeOrderVo> orderList orderList = statisticsOrder.stream().sorted(Comparator.comparing(StatisticsNodeOrderVo::getValueStr, Comparator.comparingDouble(Double::parseDouble).reversed())).collect(Collectors.toList());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值