list进行排序

 使用自定义的比较器

List<SalesData> list = programHomeService.getSalesDate(transactionRecord);
        for (SalesData salesData:list) {
            if (salesData.getTotalPriceSum()==null){
                salesData.setOilQuantitySum(new BigDecimal(0));
                salesData.setTotalPriceSum(new BigDecimal(0));
            }
        }
        // 使用自定义的比较器进行排序
        Collections.sort(list, new Comparator<SalesData>() {
            @Override
            public int compare(SalesData salesData1, SalesData salesData2) {
                // 根据totalPriceSum属性从大到小排序
                return salesData2.getTotalPriceSum().compareTo(salesData1.getTotalPriceSum());
            }
        });
        return getDataTable(list);

这里比较的是BigDecimal类型 后面的调用比较方法以后面的为准,后面的比前面的大就把后面的放到前面来,从大到小排序

如果比较String类型会根据

import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Item> itemList = ...; // 假设你的列表名为itemList

        // 使用自定义的比较器进行排序
        Collections.sort(itemList, new Comparator<Item>() {
            @Override
            public int compare(Item item1, Item item2) {
                // 根据totalPriceSum属性从大到小排序
                return Integer.compare(item2.getTotalPriceSum(), item1.getTotalPriceSum());
            }
        });

        // 排序后的列表
        for (Item item : itemList) {
            System.out.println(item);
        }
    }
}

class Item {
    private int totalPriceSum;

    public int getTotalPriceSum() {
        return totalPriceSum;
    }

    // 其他属性和方法...

    @Override
    public String toString() {
        return "Item{" +
                "totalPriceSum=" + totalPriceSum +
                // 其他属性...
                '}';
    }
}

 int类型进行排序


 steam排序

 自然排序:

List<Integer> list = Arrays.asList(3,2,1,4,5);

list.stream().sorted().forEach(System.out::print); // 1 2 3 4 5

sorted(Comparator)方法需要传入一个Comparator对象,该对象定义了元素的排序规则。例如按照元素大小降序排列:

List<Integer> list = Arrays.asList(3,2,1,4,5);

list.stream().sorted((x, y) -> y - x).forEach(System.out::print); // 5 4 3 2 1

steam方法详解:Java Stream排序用法 - Java教程网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值