美文网首页
Comparator

Comparator

作者: eagle_king | 来源:发表于2019-01-05 16:34 被阅读0次

    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)

    相关文章

      网友评论

          本文标题:Comparator

          本文链接:https://www.haomeiwen.com/subject/jeirrqtx.html