public class CompareUtil extends Object
| Constructor and Description |
|---|
CompareUtil() |
| Modifier and Type | Method and Description |
|---|---|
static int |
compare(byte x,
byte y)
比较两个值的大小
|
static int |
compare(char x,
char y)
比较两个值的大小
|
static int |
compare(double x,
double y)
比较两个值的大小
|
static int |
compare(int x,
int y)
比较两个值的大小
|
static int |
compare(long x,
long y)
比较两个值的大小
|
static int |
compare(short x,
short y)
比较两个值的大小
|
static <T extends Comparable<? super T>> |
compare(T c1,
T c2)
null安全的对象比较,null对象小于任何对象 |
static <T> int |
compare(T o1,
T o2,
boolean isNullGreater)
自然比较两个对象的大小,比较规则如下:
1、如果实现Comparable调用compareTo比较
2、o1.equals(o2)返回0
3、比较hashCode值
4、比较toString值
|
static <T extends Comparable<? super T>> |
compare(T c1,
T c2,
boolean isNullGreater)
null安全的对象比较 |
static <T> int |
compare(T c1,
T c2,
Comparator<T> comparator)
对象比较,比较结果取决于comparator,如果被比较对象为null,传入的comparator对象应处理此情况
如果传入comparator为null,则使用默认规则比较(此时被比较对象必须实现Comparable接口) 一般而言,如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 |
static <T,U> Comparator<T> |
comparingIndexed(Function<? super T,? extends U> keyExtractor,
boolean atEndIfMiss,
U... objs)
索引比较器
通过keyExtractor函数,提取对象的某个属性或规则,根据提供的排序数组,完成比较 |
static <T,U> Comparator<T> |
comparingIndexed(Function<? super T,? extends U> keyExtractor,
Iterable<U> objs)
索引比较器
通过keyExtractor函数,提取对象的某个属性或规则,根据提供的排序数组,完成比较 objs中缺失的,默认排序在前面(atEndIfMiss=false) |
static <T,U> Comparator<T> |
comparingIndexed(Function<? super T,? extends U> keyExtractor,
U[] objs)
索引比较器
通过keyExtractor函数,提取对象的某个属性或规则,根据提供的排序数组,完成比较 objs中缺失的,默认排序在前面(atEndIfMiss=false) |
static <T> Comparator<T> |
comparingPinyin(Function<T,String> keyExtractor)
中文比较器
|
static <T> Comparator<T> |
comparingPinyin(Function<T,String> keyExtractor,
boolean reverse)
中文(拼音)比较器
|
static <T extends Comparable<? super T>> |
equals(T c1,
T c2)
null安全的检查两个对象是否相同,通过调用compare(c1, c2) == 0完成 |
static <T extends Comparable<? super T>> |
ge(T c1,
T c2)
c1是否大于或等于c2,通过调用
compare(c1, c2) >= 0完成 |
static <T extends Comparable<? super T>> |
gt(T c1,
T c2)
c1是否大于c2,通过调用
compare(c1, c2) > 0完成 |
static <T extends Comparable<? super T>> |
isIn(T value,
T c1,
T c2)
给定的
value是否在c1和c2的范围内即 min(c1,c2) <= value <= max(c1,c2) |
static <T extends Comparable<? super T>> |
isInExclusive(T value,
T c1,
T c2)
给定的
value是否在c1和c2的范围内,但是不包括边界即 min(c1,c2) < value < max(c1,c2) |
static <T extends Comparable<? super T>> |
le(T c1,
T c2)
c1是否小于或等于c2,通过调用
compare(c1, c2) <= 0完成 |
static <T extends Comparable<? super T>> |
lt(T c1,
T c2)
c1是否大小于c2,通过调用
compare(c1, c2) < 0完成 |
static <T extends Comparable<? super T>> |
max(T t1,
T t2)
取两个值中的最大值,大小相同返回第一个值
|
static <T extends Comparable<? super T>> |
min(T t1,
T t2)
取两个值中的最小值,大小相同返回第一个值
|
static <E extends Comparable<? super E>> |
natural()
获取自然排序器,即默认排序器
如需对null友好操作如下
Comparator.nullsLast(CompareUtil.natural())
Comparator.nullsFirst(CompareUtil.natural())
|
static <E extends Comparable<? super E>> |
naturalReverse()
获取反序排序器,即默认自然排序的反序排序器
如需对null友好操作如下
Comparator.nullsLast(CompareUtil.naturalReverse())
Comparator.nullsFirst(CompareUtil.naturalReverse())
|
static <E extends Comparable<? super E>> |
reverse(Comparator<E> comparator)
获取反序排序器,即默认排序器
如需对null友好操作如下
Comparator.nullsLast(CompareUtil.reverse())
Comparator.nullsFirst(CompareUtil.reverse())
|
public static int compare(char x,
char y)
x - 第一个值y - 第二个值Character.compare(char, char)public static int compare(double x,
double y)
x - 第一个值y - 第二个值Double.compare(double, double)public static int compare(int x,
int y)
x - 第一个值y - 第二个值Integer.compare(int, int)public static int compare(long x,
long y)
x - 第一个值y - 第二个值Long.compare(long, long)public static int compare(short x,
short y)
x - 第一个值y - 第二个值Short.compare(short, short)public static int compare(byte x,
byte y)
x - 第一个值y - 第二个值Byte.compare(byte, byte)public static <E extends Comparable<? super E>> Comparator<E> natural()
Comparator.nullsLast(CompareUtil.natural())Comparator.nullsFirst(CompareUtil.natural())E - 排序节点类型public static <E extends Comparable<? super E>> Comparator<E> naturalReverse()
Comparator.nullsLast(CompareUtil.naturalReverse())Comparator.nullsFirst(CompareUtil.naturalReverse())E - 排序节点类型public static <E extends Comparable<? super E>> Comparator<E> reverse(Comparator<E> comparator)
Comparator.nullsLast(CompareUtil.reverse())Comparator.nullsFirst(CompareUtil.reverse())E - 排序节点类型comparator - 排序器public static <T> int compare(T c1,
T c2,
Comparator<T> comparator)
一般而言,如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0
T - 被比较对象类型c1 - 对象1c2 - 对象2comparator - 比较器Comparator.compare(Object, Object)public static <T extends Comparable<? super T>> int compare(T c1, T c2)
null安全的对象比较,null对象小于任何对象T - 被比较对象类型c1 - 对象1,可以为nullc2 - 对象2,可以为nullComparator.compare(Object, Object)public static <T extends Comparable<? super T>> int compare(T c1, T c2, boolean isNullGreater)
null安全的对象比较T - 被比较对象类型(必须实现Comparable接口)c1 - 对象1,可以为nullc2 - 对象2,可以为nullisNullGreater - 当被比较对象为null时是否排在后面,true表示null大于任何对象,false反之Comparator.compare(Object, Object)public static <T> int compare(T o1,
T o2,
boolean isNullGreater)
1、如果实现Comparable调用compareTo比较 2、o1.equals(o2)返回0 3、比较hashCode值 4、比较toString值
T - 被比较对象类型o1 - 对象1o2 - 对象2isNullGreater - null值是否做为最大值public static <T> Comparator<T> comparingPinyin(Function<T,String> keyExtractor)
T - 对象类型keyExtractor - 从对象中提取中文(参与比较的内容)public static <T> Comparator<T> comparingPinyin(Function<T,String> keyExtractor, boolean reverse)
T - 对象类型keyExtractor - 从对象中提取中文(参与比较的内容)reverse - 是否反序public static <T,U> Comparator<T> comparingIndexed(Function<? super T,? extends U> keyExtractor, U[] objs)
T - 对象类型U - 数组对象类型keyExtractor - 从对象中提取中文(参与比较的内容)objs - 参与排序的数组,数组的元素位置决定了对象的排序先后public static <T,U> Comparator<T> comparingIndexed(Function<? super T,? extends U> keyExtractor, Iterable<U> objs)
T - 对象类型U - 数组对象类型keyExtractor - 从对象中提取中文(参与比较的内容)objs - 参与排序的集合对象,数组的元素位置决定了对象的排序先后public static <T,U> Comparator<T> comparingIndexed(Function<? super T,? extends U> keyExtractor, boolean atEndIfMiss, U... objs)
T - 对象类型U - 数组对象类型keyExtractor - 从对象中提取排序键的函数(参与比较的内容)atEndIfMiss - 如果不在列表中是否排在后边; true:排在后边; false:排在前边objs - 参与排序的数组,数组的元素位置决定了对象的排序先后, 示例:int[] objs = new int[]{3, 2, 1, 4, 5,6};public static <T extends Comparable<? super T>> T min(T t1, T t2)
T - 值类型t1 - 第一个值t2 - 第二个值public static <T extends Comparable<? super T>> T max(T t1, T t2)
T - 值类型t1 - 第一个值t2 - 第二个值public static <T extends Comparable<? super T>> boolean equals(T c1, T c2)
null安全的检查两个对象是否相同,通过调用compare(c1, c2) == 0完成T - 被比较对象类型c1 - 对象1,可以为nullc2 - 对象2,可以为nullComparator.compare(Object, Object)public static <T extends Comparable<? super T>> boolean gt(T c1, T c2)
compare(c1, c2) > 0完成T - 被比较对象类型c1 - 对象1,可以为nullc2 - 对象2,可以为nullComparator.compare(Object, Object)public static <T extends Comparable<? super T>> boolean ge(T c1, T c2)
compare(c1, c2) >= 0完成T - 被比较对象类型c1 - 对象1,可以为nullc2 - 对象2,可以为nullComparator.compare(Object, Object)public static <T extends Comparable<? super T>> boolean lt(T c1, T c2)
compare(c1, c2) < 0完成T - 被比较对象类型c1 - 对象1,可以为nullc2 - 对象2,可以为nullComparator.compare(Object, Object)public static <T extends Comparable<? super T>> boolean le(T c1, T c2)
compare(c1, c2) <= 0完成T - 被比较对象类型c1 - 对象1,可以为nullc2 - 对象2,可以为nullComparator.compare(Object, Object)public static <T extends Comparable<? super T>> boolean isIn(T value, T c1, T c2)
value是否在c1和c2的范围内min(c1,c2) <= value <= max(c1,c2)T - 被比较对象类型value - 检查的对象,可以为nullc1 - 对象1,可以为nullc2 - 对象2,可以为nullvalue是否在c1和c2的范围内public static <T extends Comparable<? super T>> boolean isInExclusive(T value, T c1, T c2)
value是否在c1和c2的范围内,但是不包括边界min(c1,c2) < value < max(c1,c2)T - 被比较对象类型value - 检查的对象,可以为nullc1 - 对象1,可以为nullc2 - 对象2,可以为nullComparator.compare(Object, Object)Copyright © 2025. All rights reserved.