Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >初识JAVA:Java类库之比较器(重点)

初识JAVA:Java类库之比较器(重点)

作者头像
葆宁
发布于 2022-05-06 09:08:45
发布于 2022-05-06 09:08:45
52700
代码可运行
举报
文章被收录于专栏:FREE SOLOFREE SOLO
运行总次数:0
代码可运行

比较器(重点)

如果现在要想为一组对象进行排序,那么必须有一个可以区分出对象大小的关系操作,而这个操作在Java之中就是利用比较器完成的。常用比较器:Comparable(核心) 如果要为对象指定比较规则,那么对象所在的类必须实现Comparable接口,下面首先来看一下这个接口的定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public interface Comparable<T> {
	public int compareTo(T o);
}

根据文档的要求:要排序的数组所在的类一定要实现此接口,此接口返回的是int型数据,而用户覆写此方法的时候只需要返回三种结果:1(>0)、-1(<0)、0(=0)即可。

范例:实现比较器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.pku.wuyu.io;
import java.util.Arrays;
class Person implements Comparable <Person> {
	private String name ;
	private int age ;
	public Person(String name,int age) {
		this.name = name ;
		this.age = age ;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]\n";
	}
	@Override
	public int compareTo(Person o) {
		if (this.age > o.age) {
			return 1;
		} else if (this.age < o.age) {
			return -1;
		} else {
			return 0;
		}
	}
}
public class Demo01 {
	public static void main(String[] args) throws Exception {
		Person per[] = new Person[] { new Person("张三", 20),
				new Person("李四", 19), new Person("王五", 21) };
		Arrays.sort(per) ;	// 排序
		System.out.print(Arrays.toString(per));
	}
}

以后不管是何种情况下,只要牵扯到对象数组排序的操作,永远都是比较器Comparable。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java的当中的泛型
这就存在一个问题,如果集合存储元素时,而且存储对象有很多,而且对象类型不相同,就很容易导致隐患。
达达前端
2022/04/29
4650
Comparable和Comparator
---- 1. Comparable接口 在java.lang包下,实现了Comparable函数式接口的对象可以自然排序,而数组和集合实现了该接口,所以我们会用Arrays.sort()或Collections.sort()来排序 Comparable比较大于就返回1,小于返回-1,等于返回0 如果自定义的对象也要排序,就需要实现该接口并且手动重写里面的compareTo()方法 返回值 函数名 解释 int compareTo(T o) 将此对象与指定的对象进行比较以进行排序 需要排序的自定义对
晚上没宵夜
2020/03/10
5210
【Java】抽象类和接口
2.抽象类必须被继承,并且继承后子类要重写父类中的抽象方法,否则编译器会报错,但如果子类也是抽象类,那么其子类可以不对父类中的抽象类进行重写
喜欢做梦
2024/11/25
1490
【Java】抽象类和接口
你所要知道的关于接口的知识点
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天,点击查看活动详情
用户9996207
2023/01/12
2530
Java中的比较器Comparable与Comparator
使用背景: 当元素没有实现java.lang.Comparable接口而又不方便改代码,或者是实现了Comparable接口,也指定了两个对象的比较大小的规则,但此时不想按照预定义的方法比较大小。
鱼找水需要时间
2023/04/28
7950
【如何通过JAVA实现接口的应用和图书的管理】
我们可以通过查看String源码看到它里面有一个compareTo的方法,它能够帮助我们去比较引用类型的大小。
ImAileen
2024/12/17
870
【如何通过JAVA实现接口的应用和图书的管理】
Java实战入门:深入解析Java中的 `Arrays.sort()` 方法
在Java编程中,Arrays.sort() 方法是一个非常常用的方法,用于对数组进行排序。无论是对基本数据类型数组还是对象数组,Arrays.sort() 都能够高效地进行排序操作。本文将深入解析 Arrays.sort() 方法的定义、使用场景、实现原理、示例代码以及注意事项,以帮助读者更好地理解和使用这个方法。
E绵绵
2024/06/01
5140
Cloneable 接口和深拷贝,浅拷贝
1.Java 中内置了一些很有用的接口 , Cloneable 就是其中之一 . Object 类中存在一个 clone 方法 , 调用这个方法可以创建一个对象的 " 拷贝 ".
用户11305962
2024/10/09
910
Cloneable 接口和深拷贝,浅拷贝
Java类排序
今天上课,老师讲到Arrays.sor()的时候说,这个可以对数组进行排序,于是当时脑海中立刻浮现出两个问题:一、如果对类排序,一定要把实现什么接口。二、实现了这个接口,Java怎么知道一个类是否实现了某个接口。于是带着这个问题做了一翻查找。
SingYi
2022/07/13
6280
【Java基础语法】内置接口
小编紧接着上期抽象类与接口进行了拓展,介绍了一些Java内置有用的接口,希望能够对大家有所帮助。上期博客http://t.csdnimg.cn/0MoDe
用户11288949
2024/09/24
980
【Java基础语法】内置接口
javase-12.续上篇接口
在 Java 中,类和类之间是单继承的,一个类只能有一个父类,即 Java 中不支持多继承 ,但是 一个类可以实现多个接 口 。下面通过类来表示一组动物 .
用户11369350
2024/11/19
430
javase-12.续上篇接口
Java 比较器
比较器 Arrays 类 主要功能: 完成所有与数组有关的操作的工具类 二分查找: 在一个有序的数字序列中进行二分查找 public static int binarySearch(数据类型 [] a , 数据类型 key) 案例实现 public class TestDemo { public static void main(String [] args) throws ParseException { int date [] = new int [] {1,4,2,5,7,4,3,8} ;
Mirror王宇阳
2020/11/12
1.2K0
抽象类与接口(3)(接口部分)
❤️❤️观察其内部结构我们可以知道在Comparable后面还有个<T>,在语法上这是泛型,之后会讲,这并不影响我们现在的思路,这个<T>中的T你写student类,后面的compareTo方法中的第一个参数就是student类,如上图。
E绵绵
2024/04/08
990
抽象类与接口(3)(接口部分)
数据结构与算法__冒泡排序__Java外比较器和内比较器(排序专题)
目的:为了更好地学习和理解数组排序,为了面试作准备 冒泡排序:是一种计算机科学领域较常见的排序算法。 因为它的算法就如同 碳酸饮料中二氧化碳气泡最终会上浮到顶端一样,所以形象化称为“冒泡排序”
Maynor
2021/12/07
4670
数据结构与算法__冒泡排序__Java外比较器和内比较器(排序专题)
面试官:元素排序Comparable和Comparator有什么区别?
在 Java 语言中,Comparable 和 Comparator 都是用来进行元素排序的,但二者有着本质的区别。它们两也是常见的面试题,所以今天我们一起来盘它。
磊哥
2021/12/14
5.2K0
面试官:元素排序Comparable和Comparator有什么区别?
Java学习【接口的使用实例,浅克隆与深克隆】
当我们想要比较两个基本数据类型的大小时直接用 > , < , = 就可以了,那么如果是自定义的类要根据什么规则进行比较呢?这就用到了Comparable接口,接口中定义的就是一种规范,通过重写接口中的compareTo方法,定义比较规则,就实现了自定义类型的比较
2的n次方
2024/10/15
1180
Java学习【接口的使用实例,浅克隆与深克隆】
【背诵③】保姆级 | 零基础备赛蓝桥杯Java组| 排序库的使用
Java 提供了多种排序算法和排序库,其中比较常用的是 Arrays.sort() 方法和 Collections.sort() 方法,分别用于对数组和集合进行排序。
命运之光
2024/04/15
1240
Java.lang.Comparable接口和Java.util.Comparator接口的区别
Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。 1.Comparable简介: Java.lang.Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键
10JQKA
2018/05/09
1.1K0
Java.lang.Comparable接口和Java.util.Comparator接口的区别
面试官:你知道Comparable 和 Comparator 的区别吗?我:巴拉巴拉
面试官:“我们在Java的集合和数据结构中都离不开比较器,请你聊一聊Comparable 和 Comparator 这两种的区别吧”
JavaBuild
2024/05/27
1220
面试官:你知道Comparable 和 Comparator 的区别吗?我:巴拉巴拉
【小家Java】聊聊Java中的比较器(排序):Comparable和Comparator;Spring中的Comparators和AnnotationAwareOrderComparator
“顺序“在任何一个领域里都是非常重要的一个概念,程序也不例外。不同的执行顺序,能对你的执行结果产生直接影响。
YourBatman
2019/09/03
2.9K0
推荐阅读
相关推荐
Java的当中的泛型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验