Java的比较器

Java的比较器

比较器使用场景

Arrays 类中的 sort 方法承诺可以对对象数组进行排序,但要求满足下列前提:对象所属的类必须实现了 Comparable 接口

在java中经常涉及到对象数组的比较的情况,常见的有两种方法来处理:

  1. 继承comparable接口,并实现compareTo()方法
  2. 定义一个单独的对象比较器,继承自Comparator接口,实现compare()方法

Comparable

Comparable 简介

Comparable 是排序接口。
若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序。
此外,“实现Comparable接口的类的对象”可以用作“有序映射(如TreeMap)”中的键或“有序集合(TreeSet)”中的元素,而不需要指定比较器。

public interface Comparable {
   
	public int compareTo(T o);
}

x.compareTo(y) 来“比较x和y的大小”。若返回“负数”,意味着“x比y小”;返回“零”,意味着“x等于y”;返回“正数”,意味着“x大于y”。

Comparable的demo

Employee类

public class Employee implements Comparable<Employee>{
   
    private String name;
    private Integer age;
    private double salary;

    public Employee(String name, Integer age, double salary) {
   
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public Integer getAge() {
   
        return age;
    }

    public void setAge(Integer age) {
   
        this.age = age;
    }

    public double getSalary() {
   
        return salary;
    }

    public void setSalary(double salary) {
   
        this.salary = salary;
    }

    public Employee() {
   
    }

    @Override
    public int compareTo(Employee o) {
   
        if (salary!=o.salary) {
   
            //大的结果为1,1的在后面,想实现降序,*-1
            return Double.
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值