Comparable与Comparator对象比较

简介: Comparable与Comparator对象比较

Comparable与Comparator

对两个或多个数据项进行比较,以确定它们之间的大小关系及排列顺序称为比较。

1.Comparable接口:

此接口强行对实现它的每个类的对象进行整体排序,这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法。

代码实现:

定义一个实体类实现Comparable接口,并重写compareTo()方法

class Pig implements Comparable<Pig> {
    private String name;
    private int age;
    public Pig(String name, int age) {
        this.name = name;
        this.age = age;
    }
  // get,set,toString
    @Override
    public int compareTo(Pig o) {
        // 根据年龄比较
        return this.age - o.age;
    }
}

测试类:

public class Test1 {
    public static void main(String[] args) {
        Pig[] pigs = {new Pig("纷纷", 23), new Pig("猪猪", 25), new Pig("丽丽", 21)};
        Arrays.sort(pigs);
        System.out.println(Arrays.toString(pigs));
    }
}

输出:

[Pig{name='丽丽', age=21}, Pig{name='纷纷', age=23}, Pig{name='猪猪', age=25}]

2.Comparator接口:

要求自定义比较器类去实现。

public class PigComparator implements Comparator<Pig> {
    @Override
    public int compare(Pig o1, Pig o2) {
        return o1.getAge() - o2.getAge();
    }
}

测试:

public class Test1 {
    public static void main(String[] args) {
        Pig[] pigs = {new Pig("纷纷", 23), new Pig("猪猪", 25), new Pig("丽丽", 21)};
        Arrays.sort(pigs,new PigComparator());
        System.out.println(Arrays.toString(pigs));
    }
}

结果与上面一样,这两种方式都可以实现对象的比较,具体还是看自己的爱好。

目录
相关文章
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
人工智能 搜索推荐 安全
GPT Prompt编写的艺术:如何提高AI模型的表现力
GPT Prompt编写的艺术:如何提高AI模型的表现力
741 0
|
jenkins Java 应用服务中间件
idea一键部署远程项目
idea一键部署远程项目
|
存储 编解码 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用UserSet功能保存和载入相机的各类参数(C#)
243 0
|
算法 程序员 容器
工行银企互联接入详解(2)--下载证书
本文目录 1. 下载NC3.1 2. 启动NC 3. 进入下载证书页面 4. 配置参数 5. 下载证书 6. 其他
669 0
工行银企互联接入详解(2)--下载证书
|
运维 新制造 数据可视化
带你读《智能制造之卓越设备管理与运维实践》之一:设备运维管理的新挑战
本书从工业企业实际需求出发,结合智能制造环境下的紧迫需求,融合作者信息化咨询与项目工作实践,以理论联系实际,将设备的全生命周期管理、精益管理、全员维护、先进的维护策略(预测性维护、智能维护)等管理理与信息化技术进行融合设计,以“IE+IT”的思想实现管理平台与信息平台的平衡发展。
|
11月前
|
监控 算法 测试技术
突破极限: 高负载场景下的单机300M多行正则日志采集不是梦
在当今数字化时代,日志数据已成为企业 IT 运营和业务分析的关键资源。然而,随着业务规模的扩大和系统复杂度的提升,日志数据的体量呈现爆发式增长,给日志采集和处理系统带来了巨大挑战。
660 99
|
缓存 监控 固态存储
在Linux中,如何给最小化安装系统,进行基础优化?
在Linux中,如何给最小化安装系统,进行基础优化?
|
网络协议 网络性能优化
基于 Wireshark 分析 TCP 协议
基于 Wireshark 分析 TCP 协议

热门文章

最新文章