Comparator

2019-01-05  本文已影响0人  eagle_king

public static <T, U extends Comparable<? super U>> Comparator<T> comparing (

        Function<? super T, ? extends U> keyExtractor)

    参数:将一个 (非Comparable) 的对象 转换为一个 Comparable 对象的 Function!

    返回值:一个 T 的比较器,其比较方式为参数中获取到的 Comparable 对象的默认比较方式。

    使用场景:List<Person> 排序,需要的排序规则为:按 Person 中的 name 的自然排序方式。

public static <T, U> Comparator<T> comparing (

        Function<? super T, ? extends U> keyExtractor, Comparator<? super U> keyComparator)

    参数:

        第一个:将一个 T 类型的对象 转换为 U 类型的对象。

        第二个:定义一个关于 U 类型对象的比较方式。

    返回值:一个 T 的比较器,其比较方式为第二个参数定义的比较方式。

    使用场景:同上,但想要自定义比较规则。

public static<T> Comparator<T> comparingDouble(ToDoubleFunction<? super T> keyExtractor)

public static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor)

public static <T> Comparator<T> comparingLong(ToLongFunction<? super T> keyExtractor)

    与上面的方法类型,只是它们分别是为 Double、Integer、Long 定制的方法。

public static <T extends Comparable<? super T>> Comparator<T> naturalOrder()

    返回一个自然顺序的比较器,我觉得没什么用,因为本来就是自然顺序的比较(如果说是为了更加明显的表达是自然顺序的话,我觉得还行←_←)。

public static <T> Comparator<T> nullsFirst(Comparator<? super T> comparator)

    序列中有 null 值,放在最前面。

public static <T> Comparator<T> nullsLast(Comparator<? super T> comparator)

    序列中有 null 值,放在最后面。

default Comparator<T> reversed()

    返回当前比较器的逆序比较器。

public static <T extends Comparable<? super T>> Comparator<T> reverseOrder()

    返回自然顺序的逆序比较器。

thenComparing 方法:按多个条件排序。

Comparator 详细(https://www.jianshu.com/p/50b561044c60)

上一篇下一篇

猜你喜欢

热点阅读