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());
对于Wiener以上的话题,大家又有什么自己的独特见解呢?欢迎在下方评论区留言!
Comparator.reverseOrder() 和 reversed()的区别的更多相关文章
- Comparator与Comparable用法与区别
一.概述. Comparator和Comparable两者都属于集合框架的一部分,都是用来在对象之间进行比较的,但两者又有些许的不同,我们先通过一个例子来看一下他们的区别,然后再分别学习下它们的源 ...
- Java中Compareable和Comparator两种比较器的区别
Java中Compareable和Comparator两种比较器的区别 参考原文链接:https://www.cnblogs.com/ldy-blogs/p/8488138.html 1.引言 在ja ...
- Java中 Comparator接口 与Comparable 的区别
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt159 comparator接口与Comparable接口的区别 1. Com ...
- 集合排序 Comparator和Comparable的使用区别
Java 排序 Compare Comparator接口 Comparable接口 区别 在Java中使用集合来存储数据时非常常见的,集合排序功能也是常用功能之一.下面看一下如何进行集合排序,常用的 ...
- Comparatable接口和Comparator接口的使用与区别
这篇博文可以为你解决的问题如下: 什么是自然排序 Collections.sort()与Arrays.sort()的异同点 Comparatable接口和Comparator接口各自的排序依据(理论讲 ...
- comparable接口 和 comparator接口的特点与区别
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的. 什么是自定义class: 如 public class Pe ...
- java中Comparable和Comparator两种比较器的区别
Comparable和Comparator接口都是为了对类进行比较,众所周知,诸如Integer,double等基本数据类型,java可以对他们进行比较,而对于类的比较,需要人工定义比较用到的字段比较 ...
- sort sorted() reverse() reversed() 的区别1
sort()是可变对象(字典.列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值.sort()方法是可变对象独有的方法或者属性,而作为不可变对象如元组.字符串是不具有这些方法的 ...
- sort sorted() reverse() reversed() 的区别
sort()是可变对象(字典.列表)的方法,无参数,无返回值,sort()会改变可变对象,因此无需返回值.sort()方法是可变对象独有的方法或者属性,而作为不可变对象如元组.字符串是不具有这些方法的 ...
- Java Comparable与Comparator区别
1,两种接口的展示 下面的程序是两个类各自实现了Comparable接口.Comparator接口 package com.cnblogs.mufasa.Solution; import java.u ...
随机推荐
- Amazon S3 概念及如何集成到 .net 8 C#
Amazon S3(Simple Storage Service)是一个高度可扩展.数据可用性高.安全性强的对象存储服务. Amazon S3 使用对象存储架构,数据以对象的形式存储在桶(bucket ...
- 什么是nginx的强缓存和协商缓存
一.强缓存(Strong Cache) 1. 定义 • 强缓存直接告诉浏览器:在缓存过期前,无需与服务器通信,直接使用本地缓存. • 由服务器通过响应头 Cache-Control 和 Expires ...
- mysql 表的创建,修改,删除
查看数据库所有表 show tables 创建 create table 表名 ( 列名 类型 约束条件 ... ) 类型有整形: tinyint(1B) ,smallint(2B),mediumin ...
- 在GNU Hurd中感受Mach微内核的进程通信(IPC)
什么是GNU Hurd 具体的时间线已经在官方维基页面得到详细描述[0],笔者在此就简单叙述一下.在1983年Richard Stallman开启了GNU项目,目的是创建一个自由的操作系统[1].在接 ...
- Flask快速入门3
十一,Flask Cookies Cookie以文本文件的形式存储在客户端的计算机上.其目的是记住和跟踪与客户使用相关的数据,以获得更好的访问者体验和网站统计信息. Request对象包含Cookie ...
- Invalid prop: type check failed for prop "showCheckbox". Expected Boolean, got String.
一个简单的报错 ,可以用于 代码: <el-tree :data="menus" :props="defaultProps" ...
- Windows 10 的 "邮件" 设置完成QQ账户,提示您的Qq帐户设置已过期的处置方法
引起这问题的原因可能是QQ未开启 1.POP3/SMTP服务 2.IMAP/SMTP服务 开启方法: 1.登录QQ邮箱(mail.qq.com) 2.点击"设置"->&q ...
- Linux环境 Oracle 监听和服务 日常操作
文章目录 一.Oracle监听 1.1. 查看Oracle监听运行状态 1.2. 启动 ...
- 必看!SpringAI轻松构建MCP Client-Server架构
MCP 这个概念相信大家已经听了无数次了,但不同人会有不同的解释,你可能也是听得云里雾里的. 不过没关系,今天这篇内容会通过 Spring AI 给你实现一个 MCP 的 Client 和 Serve ...
- 利用AI增强VS Code TypeScript插件:AnyToTS带来编程新体验
Any to TS: VSCode 扩展插件 概述 "Any to TS" 是一个强大的 VSCode 扩展插件,旨在将任何对象转换为 TypeScript 类型或接口.该工具基于 ...