美文网首页
java中list排序方式

java中list排序方式

作者: 黑暗中冬眠的华仔 | 来源:发表于2019-02-16 15:13 被阅读0次
//1 这种方式直接改变了原list数据        list.sort(Comparator.comparing(IdleTimePeriod::getStart).thenComparing(IdleTimePeriod::getEnd));
        //2 这种方式返回一个list的副本( 排序之后的)不改变原list
        //        Stream<IdleTimePeriod> sorted = list.stream().sorted(
        //                Comparator.comparing(IdleTimePeriod::getStart).thenComparing(IdleTimePeriod::getEnd));

        //3 这种方式直接改变原list数据
        //        Collections.sort(list, (o1, o2) -> {
        //            if (o1.getStart().isEqual(o2.getStart())) {
        //                return o1.getEnd().isAfter(o2.getEnd()) ? 1 : o1.getEnd().isEqual(o2.getEnd()) ? 0 : -1;
        //            }
        //            return o1.getStart().isAfter(o2.getStart()) ? 1 : o1.getStart().isEqual(o2.getStart()) ? 0 : -1;
        //        });

第三种方法虽然比较笨重 但是可以做一些复杂的逻辑处理;在使用时候注意 需要满足比较约束 就是说当两个值相等时候f (x, y) = -f(y,x);通俗讲就是在比较的时候不能忽略两个数值相等的情况 不能简单写 x > y ? 1 : -1;这样 要x > y ? 1 : x ==y ? 0 : -1 将相等的情况也要考略
第一种和第二种方式简洁 可以满足绝大部分的排序 其中 Comparator.comparing(IdleTimePeriod::getStart).thenComparing(IdleTimePeriod::getEnd)); thenComparing当comparing比较返回0即相等时候 则执行该方法中的比较规则

相关文章

  • java中list排序方式

    第三种方法虽然比较笨重 但是可以做一些复杂的逻辑处理;在使用时候注意 需要满足比较约束 就是说当两个值相等时候f ...

  • Java字典序排序

    Java中对List进行字典序排序

  • java 对象数组排序

    java对象List集合的排序(基本类型相似); 方法一:使用for循环的方式来进行对象List集合的排序;方法二...

  • Java List的排序

    1、List的排序方式 1)list中对象实现Comparable接口,重写compareTo接口,排序的字段进行...

  • 策略模式

    Java中对List中对象列表某个字段升序排序

  • java对List、Set、Map升序、降序排序用法

    下面介绍java中对对List、Set、Map的升序、降序排序的常用写法 1、List排序:数字、字符串都适用 输...

  • 我用的java8

    list to Map (java 8) 分组, 计数 排序 java 8 分区

  • java8的List排序写法

    java8的List 的自定义排序 通过CreateTime属性排序 List userList = find...

  • Java中的Iterable与Iterator详解

    在Java中,我们可以对List集合进行如下几种方式的遍历: List list =newArrayList<>(...

  • Java 8 中的Comparator 的用法

    Java 8 中的Comparator可以让我们很方便的实现排序的功能用法:对整数的列表升序排序 排序List对象...

网友评论

      本文标题:java中list排序方式

      本文链接:https://www.haomeiwen.com/subject/laobeqtx.html