美文网首页
Comparator 重点

Comparator 重点

作者: holmes000 | 来源:发表于2020-08-18 16:39 被阅读0次

    实现Comparator接口,必须实现下面这个函数:

    @Override
    public int compare(CommentVo o1, CommentVo o2) {
               return o1.getTime().compareTo(o2.getTime());
    }
    

    这个地方很容易记错,所以理解其作用就不会弄错了
    这里o1表示位于前面的对象,o2表示后面的对象

    返回-1(或负数),表示不需要交换01和02的位置,o1排在o2前面,asc

    返回1(或正数),表示需要交换01和02的位置,o1排在o2后面,desc

    Comparator.comparing 进行排序 默认就是ASC

    查看 Comparator 类内部实现,还有一个 comparing 方法,实现如下

    public static <T, U extends Comparable<? super U>> Comparator<T> comparing(
               Function<? super T, ? extends U> keyExtractor)
       {
           Objects.requireNonNull(keyExtractor);
           return (Comparator<T> & Serializable)
               (c1, c2) -> keyExtractor.apply(c1).compareTo(keyExtractor.apply(c2));
       }
    

    keyExtractor.apply这里用到1.8的函数接口 Function

    相关文章

      网友评论

          本文标题:Comparator 重点

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