目录
一、使用方式
1、Stream中sorted()方法
2、Stream中max()方法
二、具体方法
1、 compare
2、 equals
3、 naturalOrder
4、 comparing
5、 comparingInt
6、 comparingLong
7、 comparingDouble
8、 nullsFirst
9、 nullsLast
10、 reversed
11、 reverseOrder
12、 thenComparing
13、 thenComparingInt
14、 thenComparingLong
15、 thenComparingDouble
sorted()
方法list.stream().sorted(Comparator.comparing(User::getName))
max()
方法list.stream().max(Comparator.comparing(User::getName));
简介:
比较2个值
定义:
int compare(T o1, T o2)
比较其两个参数的顺序。
简介:
比较值是否等于另一个值
定义:
boolean equals(Object obj) 指示某个其他对象是否等于此比较器。
简介:
定义:
static
> Comparator naturalOrder() 返回一个以自然顺序比较Comparable对象的比较器 。
简介:
根据指定值,比较数据大小值
定义:
static
> Comparator comparing(Function super T,? extends U> keyExtractor) 接受从类型T中提取Comparable排序键的功能,并返回按该排序键进行比较的Comparator
。 static Comparator comparing(Function super T,? extends U> keyExtractor, Comparator super U> keyComparator) 接受提取从一个类型排序键的功能T ,并返回一个Comparator
,通过使用指定的排序关键字进行比较Comparator。
简介:
比较取出Int值大小
定义:
static
Comparator comparingInt(ToIntFunction super T> keyExtractor) 接受从类型 T中提取 int排序键的功能,并返回与该排序键进行比较的 Comparator
。
使用案例:
Comparator.comparingInt(User::getAge)
简介:
比较取出Long值大小
定义:
static
Comparator comparingLong(ToLongFunction super T> keyExtractor) 接受提取功能 long从类型排序键 T ,并返回一个 Comparator
通过那种关键的。
简介:
比较取出Double值大小
定义:
static
Comparator comparingDouble(ToDoubleFunction super T> keyExtractor) 接受从类型 T中提取 double排序键的功能,并返回一个 Comparator ,该数据按该排序键进行比较。
简介:
对空值的数据,放在首位
定义:
static
Comparator nullsFirst(Comparator super T> comparator) 返回一个空友好的比较是认为 null小于非空。
使用案例:
Comparator.comparing(User::getName, Comparator.nullsFirst(String::compareTo));
使用Comparator.nullsLast(Date::compareTo),如果是Date类型,用Date::compareTo,如果是String类型用String::compareTo。
source = source.stream().sorted(Comparator.comparing(ReportPO.ReportDTO::getMyTwTime,Comparator.nullsLast(Date::compareTo)).reversed()).collect(Collectors.toList());
简介:
对空值的数据,放在末位
定义:
static
Comparator nullsLast(Comparator super T> comparator)
返回一个比较容易的比较器,它将 null设置为大于非空值。
使用案例:
Comparator.comparing(User::getName, Comparator.nullsLast(String::compareTo))
简介(先排序再取反):
将之前排序数据,进行翻转
定义:
default Comparator
reversed() 返回一个比较器,强制该比较器的相反顺序。
使用案例:
Comparator.comparing(User::getName).reversed(); Comparator.comparing(User::getName, Comparator.nullsLast(String::compareTo)).reversed();
简介(直接倒序排列):
以某字段倒序方式,对数据进行排序
定义:
static
> Comparator reverseOrder() 返回一个与 自然排序相反的比较器。
使用案例:
Comparator.comparing(类::属性一, Comparator.reverseOrder()) Comparator.comparing(User::getName, Comparator.reverseOrder()); Comparator.comparing(User::getName, Comparator.reverseOrder());
简介:
先进行比较后,再使用thenComparing进行排序(多条件)
定义:
default Comparator
thenComparing(Comparator super T> other) 用另一个比较器返回一个字典顺序比较器。
default > Comparator
thenComparing(Function super T,? extends U> keyExtractor) 返回具有提取 Comparable排序键的功能的 Comparable顺序比较器。 default Comparator
thenComparing(Function super T,? extends U> keyExtractor, Comparator super U> keyComparator) 返回具有提取要与给定 Comparator进行比较的键的功能的字典顺序比较 Comparator 。
使用案例:
Comparator.comparing(User::getName).thenComparingInt(User::getAge);
Comparator.comparing(User::getName, Comparator.nullsFirst(String::compareTo)).thenComparing(User::getAge, Comparator.reverseOrder());
简介:
定义:
default Comparator
thenComparingInt(ToIntFunction super T> keyExtractor) 返回具有提取 int排序键的功能的 int顺序比较器。
使用案例:
简介:
定义:
default Comparator
thenComparingLong(ToLongFunction super T> keyExtractor) 返回具有提取 long排序键的功能的 long顺序比较器。
使用案例:
简介:
定义:
default Comparator
thenComparingDouble(ToDoubleFunction super T> keyExtractor) 返回具有提取 double排序键的功能的 double顺序比较器。
-------------------------------------以下无正文-----------------------------------------------------------
注:仅供学习,记录问题和参考,共勉!
转载来源:
https://www.cnblogs.com/lydms/p/16549180.html#12_thenComparing_189