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

  • 相关阅读:
    157 判断字符串是否没有重复字符
    53 翻转字符串
    671 循环单词
    8 旋转字符串
    39 恢复旋转字符串
    6 合并排序数组 Ⅱ
    64 合并排序数组
    60 搜索插入位置
    141 x的平方根
    TCSRM 593 div2(1000)(dp)
  • 原文地址:https://www.cnblogs.com/hanwuxing/p/13187310.html
Copyright © 2011-2022 走看看