博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两种比较器Comparable 和 Comparator
阅读量:4679 次
发布时间:2019-06-09

本文共 3437 字,大约阅读时间需要 11 分钟。

//通过两种比较器排序//比较器////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
{ 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
(){ @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); } }}

 

转载于:https://www.cnblogs.com/fax1996/p/9477396.html

你可能感兴趣的文章
mysql错误修改数据_mysql数据修改问题
查看>>
navicat忘记mysql密码_navicat连接My SQL时忘记root密码处理方法
查看>>
mysql 左连接 左外连接吗_什么是左外连接?左外连接在工作表查询中的应用
查看>>
python sum函数导入list_python sum函数iterable参数为二维list,start参数为“[]”该如何理解...
查看>>
docker 删除多余镜像_多余Basedisk删除和vDisk镜像反转技术简介
查看>>
mysqlin会使用索引吗_被面试官虐了,索引为何使用B+树,你知道吗
查看>>
mysql8单节点500m_Kubernetes 部署 Mysql 8.0 数据库(单节点)
查看>>
mysql数据工厂生产_MySQL超时与天蓝色数据工厂副本
查看>>
python缩进可以用在任何语句之后_每天一道Python选择题--python缩进
查看>>
mysql查询左边大于左边_MySQL WHERE 子句
查看>>
java 获取颜色_java关于照片属性的获取,颜色模式
查看>>
session丢失原因 java_session没有过期,其保存的数据无故丢失的原因
查看>>
java pkcs 11 write_java pkcs#11读取证书加解密(初学-分享)
查看>>
tranisant java_java tranisant
查看>>
java ibatis 存储过程_ibatis 调用存储过程
查看>>
java中的softreference_Java语言中内存优化的SoftReference 和 WeakReference的对比分析
查看>>
java提供了丰富的类库_Java优势有哪些?
查看>>
java 过滤器权限控制_JAVA过滤器,实现登陆权限限制
查看>>
设计模式java 模板模式_java设计模式--模板方法模式
查看>>
中缀转后缀 java_Java 利用堆栈将中缀表达式转换成后缀
查看>>