使用流排序时Comparator.reverseOrder() 和 reversed()的区别

简介: 使用流排序时Comparator.reverseOrder() 和 reversed()的区别

两种排序方式

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

本篇文章如有帮助到您,请给「翎野君」点个赞,感谢您的支持。


目录
相关文章
|
存储 安全 算法
MySQL 数据库支持国密算法
数据库加密,作为杀手锏,是数据库底线防守的秘密武器,通过在数据库存储层进行数据加密处理,达到即使数据被黑客盗取也无法解密的效果,从根源上解决数据泄露问题。 近年,市场对于数据库加密产品的需求呈上升趋势,但由于技术门槛极高,国内真正能够提供此类产品的企业本就寥寥无几,尤其针对全球份额排名第二的MySQL数据库,能够对其支持的加密产品一直没有出现。 不同于传统的视图+触发器模式的透明加密方式,本文所提MySQL国密加密产品采用数据库引擎代码改造技术,真正实现数据在存储层的加、解密功能,避免以往加密过程中,数据库文件导入导出的繁琐方法,最大程度减少性能损失。 产品是为用户需求而生,而我们要做的
2016 0
|
jenkins 持续交付
Jenkins常用插件Copy Artifact的使用
使用Copy Artifact插件,可以完成不同任务间传输文件
2453 0
Jenkins常用插件Copy Artifact的使用
|
7月前
|
存储 数据管理 Apache
Doris建表分桶选择与优化建议
Apache Doris 中的分桶(Bucketing)是提升查询性能的重要优化手段。通过合理选择分桶列和分桶数,可提高数据并行处理能力与局部性。建议选用高基数、高频查询列作为分桶列,结合数据量与集群规模设置分桶数,推荐使用自动分桶(BUCKETS AUTO)。分桶策略包括哈希分桶与范围分桶,适用于不同场景。合理分桶可优化查询性能、导入效率与资源利用率,建议结合业务特征测试验证最佳方案。
681 0
Zp
|
Java
Java中BigDecimal保留两位小数
Java中BigDecimal保留两位小数
Zp
1610 0
|
SQL 分布式计算 NoSQL
快速实践: 通过 Flink CDC 一键整库同步 MongoDB 到 Paimon
Apache Paimon (incubating) 是一项流式数据湖存储技术,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。
77726 4
快速实践: 通过 Flink CDC 一键整库同步 MongoDB 到 Paimon
|
jenkins Java 持续交付
Jenkins打包,发布,部署
Jenkins打包,发布,部署
1004 0
|
存储 缓存 监控
Flink性能优化小结
Flink性能优化小结
|
JSON 前端开发 Java
Java对象与json字符串的转换
前后台传递通常会用到Json来转换,因此java对象与json字符串之间的转换使用变得很频繁。
3034 0
|
Java 应用服务中间件
如果 JAVA 程序中抛出了 java.lang.OutOfMemoryError:Java heap space ,请讲一下解决问题的思路。
如果 JAVA 程序中抛出了 java.lang.OutOfMemoryError:Java heap space ,请讲一下解决问题的思路。
4782 0
|
存储 Java 调度
Spring Batch轻量级批处理实战
Spring Batch轻量级批处理实战
516 0

热门文章

最新文章