mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
!585 ✨ add comparingIndexed method to CompareUtil.
Merge pull request !585 from Hacker/v5-dev
This commit is contained in:
commit
8b13c06123
@ -152,4 +152,35 @@ public class CompareUtil {
|
|||||||
}
|
}
|
||||||
return (o1, o2) -> pinyinComparator.compare(keyExtractor.apply(o1), keyExtractor.apply(o2));
|
return (o1, o2) -> pinyinComparator.compare(keyExtractor.apply(o1), keyExtractor.apply(o2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 索引比较器
|
||||||
|
*
|
||||||
|
* @param keyExtractor 从对象中提取中文(参与比较的内容)
|
||||||
|
* @param objs 参与排序的数组,数组的元素位置决定了对象的排序先后
|
||||||
|
* @param <T> 对象类型
|
||||||
|
* @param <U> 数组对象类型
|
||||||
|
* @return 索引比较器
|
||||||
|
* @since 5.8.0
|
||||||
|
*/
|
||||||
|
public static <T, U> Comparator<T> comparingIndexed(Function<? super T, ? extends U> keyExtractor, U... objs) {
|
||||||
|
return comparingIndexed(keyExtractor, false, objs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 索引比较器
|
||||||
|
*
|
||||||
|
* @param keyExtractor 从对象中提取排序键的函数(参与比较的内容)
|
||||||
|
* @param atEndIfMiss 如果不在列表中是否排在后边
|
||||||
|
* @param objs 参与排序的数组,数组的元素位置决定了对象的排序先后
|
||||||
|
* @param <T> 对象类型
|
||||||
|
* @param <U> 数组对象类型
|
||||||
|
* @return 索引比较器
|
||||||
|
* @since 5.8.0
|
||||||
|
*/
|
||||||
|
public static <T, U> Comparator<T> comparingIndexed(Function<? super T, ? extends U> keyExtractor, boolean atEndIfMiss, U... objs) {
|
||||||
|
Objects.requireNonNull(keyExtractor);
|
||||||
|
IndexedComparator<U> indexedComparator = new IndexedComparator<>(atEndIfMiss, objs);
|
||||||
|
return (o1, o2) -> indexedComparator.compare(keyExtractor.apply(o1), keyExtractor.apply(o2));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user