这个方法比较两个对象的大小啊?
谢邀。在java中,如果一个类实现了Comparable接口,我们认为这个类的对象是可以进行比较的。
Comparable接口中的 compareTo方法就是用于提供两个对象比较策略的方法。根据JDK文档,方法产生一个整数作为返回值,当这一整数小于0时,说明调用方小于被调用方,即在自然排序会排在前面;反之,当返回值大于0时,说明调用方大于被调用方。当返回值等于0时,可以认为二者相等(只是在比较时相等,不能严格保证二者是equals的关系)。
这里首先要说题主问题里提到的compareTo的场景是不成立的,因为compareTo方法的调用法是一个引用类型的对象,除包装类外,引用类型对象不能用减号连接,而包装类都是final类型的,无法被继承。一般新建一个类实现Comparable接口时,都是通过比较对象的某一个或多个成员变量来对对象的大小进行比较。
那么假设问题成立的话,x=1, y=2返回-1,表示的是在自然排序中1在2前面,x=2,y=1,返回1,表示的是自然排序中2在1的后面,二者是一致的。
实际上,如果是要自定义排序的规则,一般是在排序中使用Comparator接口,Comparator接口与Comparable类似,接口中包含一个compare方法
即要比较的两个对象都作为参数传入方法中,此时两个参数可以是基本类型的包装类,可以按问题中的方式进行调用。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有