• 两种比较器Comparable 和 Comparator


    //通过两种比较器排序
    //比较器
    //
    //Comparable:自然排序使用
    //  规则:
    //   this属性  参数对象o属性 比较
    //   this > o 正数
    //   this < o 负数
    //   this == o 0
    //
    //Comparator:外部比较器
    //
    //
    //
    //--------------------------------------
    //Comparable 和 Comparator区别:
    //1.位置。
    //  Comparable  代码写在要比较的类中;
    //  Comparator  代码写在要比较的类外;
    //2.个数。
    //  Comparable  就定义一种;
    //  Comparator  可以定义多个比较方式。                   
    import java.util.Arrays;
    public class TestTel {
        public static void main(String[] args) {
            Mumber[] mum = new Mumber[3];
            Mumber m1 = new Mumber("001", "张三", 500);
            Mumber m2 = new Mumber("010", "李四", 1100);
            Mumber m3 = new Mumber("006", "王五", 200);
            mum[0] = m1;
            mum[1] = m2;
            mum[2] = m3;
            //第一种Comparable 外部比较器
            Arrays.sort(mum);
            for(Mumber s :mum) {
                System.out.println(s);
            }    
        }
    }
    
    class Mumber implements Comparable<Mumber>{
        private String no;
        private String name;
        private int num;
        public String getNo() {
            return no;
        }
        public void setNo(String no) {
            this.no = no;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getNum() {
            return num;
        }
        public void setNum(int num) {
            this.num = num;
        }
        public Mumber(String no, String name, int num) {
            super();
            this.no = no;
            this.name = name;
            this.num = num;
        }
        @Override
        public int compareTo(Mumber o) {
            // TODO Auto-generated method stub
            return o.num-this.num;
        }
        @Override
        public String toString() {
            return "Student [no=" + no + ", name=" + name + ", num=" + num+"]";
        }
        
    }
    package day13;
    
    import java.util.Arrays;
    import java.util.Comparator;
    
    class Employee{
        private String name;
        private int age;
        public Employee(String name, int age) {
            super();
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public int getAge() {
            return age;
        }
        @Override
        public String toString() {
            return "Employee [name=" + name + ", age=" + age + "]";
        }
        
    }
    public class TestSort2 {
    
        public static void main(String[] args) {
            Employee guojing = new Employee("yangkang", 22);
            Employee yangkang = new Employee("guojing", 20);
            Employee huangrong = new Employee("huangrong", 21);
            
            Employee [] emps = {guojing,yangkang,huangrong};
            Arrays.sort(emps, new Comparator<Employee>(){
                @Override
                public int compare(Employee o1, Employee o2) {
    
        /*            if(o1.getName().compareTo(o2.getName()) > 0) {
                        return 1;
                    }else if(o1.getName().compareTo(o2.getName()) < 0) {
                        return -1;
                    }else {
                        if(o1.getAge() > o2.getAge() ) {
                            return 1;
                        }else if(o1.getAge() < o2.getAge()) {
                            return -1;
                        }else {
                            return 0;
                        }
                    }*/
                  if(o1.getName().compareTo(o2.getName()) == 0) {
                        return o1.getAge() - o2.getAge();
                   }
                   return o1.getName().compareTo(o2.getName());
                }
                
            });
            for(Employee emp : emps) {
                System.out.println(emp);
            }
            
            
        }
    
    }
  • 相关阅读:
    springboot集成kafka
    elasticsearch http 搜索 测试
    linux下安装Elasticsearch
    laravel_admin 使用
    laravel 数据操作
    Win10+apache+PHP+Mysql
    laravel 坑(一)
    下载CentOS镜像
    window10 家庭版 添加Hyper-V虚拟机
    Win10 Composer 下载安装
  • 原文地址:https://www.cnblogs.com/fax1996/p/9477396.html
Copyright © 2020-2023  润新知