zoukankan      html  css  js  c++  java
  • 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());
    });

  • 相关阅读:
    CSS3 动画-- 鼠标移上去,div 会旋转、放大、移动
    jquery 微信端 点击物理返回按钮,弹出提示框
    H5 canvas pc 端米字格 写字板
    【三剑客】awk函数
    【三剑客】awk运算符
    【三剑客】awk命令2
    【三剑客】awk命令
    磁盘
    用户管理
    定时任务Crond
  • 原文地址:https://www.cnblogs.com/hanwuxing/p/13187310.html
Copyright © 2011-2022 走看看