首页 > 其他 > 详细

比较器 Comparable 与compartor 的区别及理解

时间:2019-05-27 17:31:37      阅读:154      评论:0      收藏:0      [点我收藏+]
概述:两者都是比较器用于相同类型的比较,常用于排序功能的实现。
 
Comparable 实现:(内部排序,在pojo 中实现)
技术分享图片

 
Comparator 实现:(外部排序,不在pojo中实现)
public static void compareTest(){
    List<User> list = new ArrayList<User>();
    list.add(new User("bob",27));
    list.add(new User("club",26));
    Collections.sort(list, new Comparator<User>() {
        public int compare(User o1, User o2) {
            return o1.getAge()-o2.getAge();
        }
    });
    //[User{name=‘club‘, age=26}, User{name=‘bob‘, age=27}]
    System.out.println(list.toString());
}

区别:
Comparable: 可以在对应的pojo 类中实现compareTo方法,然后调用
Collections.sort 或者 arrays.sort 会自动调用你实现的方法。但排序只有一种。

Comparator :可以实现多种不同的排序方式,只需要把你想要排序的方式作为参数传入sort 即可。
例如上面的代码我既可以按年龄排序也可以按名字排序。具体看上面的代码实现
 
但两者返回结果一致:当 前者 - 后者 < - 1 则像前移动 实现正序

 

比较器 Comparable 与compartor 的区别及理解

原文:https://www.cnblogs.com/lanSeGeDiao/p/10931441.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!