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());
    });

  • 相关阅读:
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周课程总结
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第五周课程总结&实验报告(四)
    2019JAVA课程总结
  • 原文地址:https://www.cnblogs.com/hanwuxing/p/13187310.html
Copyright © 2011-2022 走看看