• JAVA8——多重排序


    CusPrm prm1 = new CusPrm();
    prm1.setPrmName("小红");
    prm1.setFkCusMtId(3L);
    CusPrm prm2 = new CusPrm();
    prm2.setPrmName("张红");
    prm2.setFkCusMtId(5L);
    CusPrm prm3 = new CusPrm();
    prm3.setPrmName("bon");
    prm3.setFkCusMtId(4L);
    CusPrm prm4 = new CusPrm();
    prm4.setPrmName("张红");
    prm4.setFkCusMtId(3L);
    CusPrm prm5 = new CusPrm();
    prm5.setPrmName("小非");
    prm5.setFkCusMtId(3L);

    List<CusPrm> list = new ArrayList<>();
    list.add(prm1);
    list.add(prm2);
    list.add(prm3);
    list.add(prm4);
    list.add(prm5);
    System.out.println(JSON.toJSONString(list));
    //方式一:
    list.sort(Comparator.comparing(CusPrm::getPrmName, (a,b) ->{
    //第一顺序:按字段拼音
    return Collator.getInstance(Locale.CHINESE).compare(a, b);
    }).thenComparing(CusPrm::getFkCusMtId, (a, b) ->{
    //第二顺序:按数字大小
    return a<b?-1:1;
    //按类型大小排序,再加反转
    }).thenComparingLong(CusPrm::getFkCusMtId).reversed()
    );
    //方式二:
    Collections.sort(list, Comparator.comparing(CusPrm::getPrmName, (a,b) ->{
    //第一顺序:按字段拼音
    return Collator.getInstance(Locale.CHINESE).compare(a, b);
    }).thenComparing(CusPrm::getFkCusMtId, (a, b) ->{
    //第二顺序:按数字大小
    return a<b?-1:1;
    //按类型大小排序,再加反转
    }).thenComparingLong(CusPrm::getFkCusMtId).reversed()
    );
    System.out.println(JSON.toJSONString(list));
    // list.sort(String.CASE_INSENSITIVE_ORDER); //忽略大小写对list按首字母对字符串进行排序
    //list.sort(Comparator.naturalOrder());//对list按首字母对字符串进行排序,对大小写敏感

    //方式三:

    list.sort((a, b) ->{
    return Collator.getInstance(Locale.CHINESE).compare(a.getPrmName(), b.getPrmName());
    });

  • 相关阅读:
    第一个ADO.NET连接SQl server数据库
    Mysql编码
    SNMP协议报文分析
    物理层计算
    随机产生数组
    c#排序
    c#计算一段代码的时间复杂度
    jwt认证
    drf三大组件之频率认证组件
    drf三大组件之认证组件与权限组件
  • 原文地址:https://www.cnblogs.com/hanwuxing/p/13187310.html
Copyright © 2020-2023  润新知