首页 > 其他分享 >Comparator.reverseOrder() 和 reversed()的区别

Comparator.reverseOrder() 和 reversed()的区别

时间:2023-04-16 16:26:19浏览次数:55  
标签:Comparator reversed comparing reverseOrder 排序 属性

摘要:Comparator.reverseOrder() 和 reversed()的区别是前者以某字段进行倒序排列,而reversed是针对已排序数据进行处理,常常用于比较器的末尾。

  在使用Stream sorted进行排序的时候,常常需要按照摸个属性进行降序排列,有时候reverseOrder() 和 reversed()都可以实现目标,那他们的区别是什么呢?本文为各位老铁介绍一下。

reversed

  reversed是先排序再取反:作用于已经根据全部指定属性排序数据,目标是实现数据排序翻转。语法规则:

default Comparator<T> reversed() 

  返回一个比较器,强制获取该比较器的相反顺序结果。案例分析:按照年龄降序排列

Comparator.comparing(UserDTO::getAge).reversed();

reverseOrder

  功能是以某字段倒序方式,从而实现对数据进行排序,而reversed是针对已排序数据进行处理。源码定义:


 public static <T extends Comparable<? super T>> Comparator<T> reverseOrder() {
    return Collections.reverseOrder();
 }

  调用集合类Collections里的 reverseOrder() 返回一个与自然排序相反的比较器。语法:

Comparator.comparing(类::属性, Comparator.reverseOrder());

  使用案例:

Comparator.comparing(UserDTO::getAge, Comparator.reverseOrder());

  为了避免混淆,构建比较器时推荐使用 reverseOrder:

Comparator.comparing(类::属性一, Comparator.reverseOrder());

  对于Wiener以上的话题,大家又有什么自己的独特见解呢?欢迎在下方评论区留言!

标签:Comparator,reversed,comparing,reverseOrder,排序,属性
From: https://www.cnblogs.com/east7/p/17323454.html

相关文章

  • sort,sorted,reverse,reversed的区别
    python中sort,sorted,reverse,reversed的区别简单的说以上四个内置函数都是排序。对于sort和reverse都是list列表的内置函数,一般不传参数,没有返回值,会改变原列表的值。而sorted和reversed是python内置函数,需要传参数,参数可以是字符串,列表,字典,元组,不管传的参数是什么sorted返回的......
  • Comparable和Comparator的区别
    一、Comparable与Comparator的相同点Comparable和Comparator都是java的一个接口,多用于实现集合中元素的比较及排序。当我们自定义一个类时,如果需要规定其中的排序规则时,......
  • Comparable 和 Comparator 的区别
    1.Comparator位于包java.util下,而Comparable位于包java.lang下2.Comparable接口将比较代码嵌入自身类中,而Comparator在一个独立的类中实现比较。3.Comparator接口的比较......
  • 排序Comparable 和 Comparator的区别
    [1]区别[1.1]源码上的区别  ​​comparable​​​接口实际上是出自​​java.lang​​​包,它有一个​​compareTo(Objectobj)​​方法用来排序;  ​​comparator​​......
  • Comparable和Comparator的区别
    一、概述Comparable和Comparator都是用来实现比较的,一般用于集合中元素的比较基本包装类型,Integer、Long以及String都实现了Comparable接口,该接口的排序逻辑必须......
  • TreeSet的使用以及Comparator接口
    packageedu.wtbu;importjava.util.Comparator;importjava.util.Iterator;importjava.util.TreeSet;publicclassDemo01{publicstaticvoidmain(String[]args......
  • java Comparator和Comparable的区别?
    参考:https://blog.csdn.net/m0_71087031/article/details/124850080Comparable是一个内比较器,可以和自己比较的Comparator是一个外比较器,方法有两个参数To1和To2,是泛型......
  • 从python列表里删除一个元素会对reversed() 产生怎样的影响
    这是一个在stackoverflow上看到的问题,非常的有趣且值得研究。1.iter使用iter函数返回列表的迭代器,随后从列表里删除一个元素,在遍历迭代器时,输出的内容会是怎样的呢?lst=['......
  • python-内建函数-反转函数reversed
    1.内建函数-反转函数reversed函数reversed()函数:返回一个反转的迭代器语法格式:reversed(seq)示例:列表反向n=[1,2,3]print(list(reversed(n)))2.......
  • java 基础 -- Comparable 和 Comparator
    packagecom.example.javareview.comparable;importjava.util.*;/***一、说明:Java中的对象,正常情况下,只能进行比较:==或!=。不能使用>或<的*......