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


    概述:两者都是比较器用于相同类型的比较,常用于排序功能的实现。
     
    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 则像前移动 实现正序
  • 相关阅读:
    Python生成器
    Python迭代器
    模块
    列表推倒式
    内置函数 lambda表达式
    函数
    global、nonlocal、迭代器
    练习
    编码数组字典
    字典
  • 原文地址:https://www.cnblogs.com/lanSeGeDiao/p/10931441.html
Copyright © 2020-2023  润新知