高分悬赏,用Java语言的compareTo实现的比较和大于号小于号的区别
请给出详细的回答
compareTo()方法用于比较两个数的大小,如果是数字则直接比较大小,如果是字符串,则比较其ASCI码的大小,
例如:a.compareTo(b)
如果 a=b 相等,则返回 0
如果 a>b ,则返回1,
如果 a < b, 则返回-1
compareTo() 方法是 Comparable 接口中的方法,所有实现了 Comparable 接口的类,必须实现 compareTo() 方法,如:String类、Integer类等都实现了Comparable 接口。Comparable 接口只有一个方法,如下:
public interface Comparable<T> {
public int compareTo(T o);
}
调用方式为:o1.compareTo(o2)
一般而言,当o1 > o2 时,返回正数;当o1 < o2 时,返回负数;当o1==o2 时,返回0
用户可以重写compareTo() 方法,实现当 o1>o2 时,返回负数;当o1<o2 时,返回正数;
另外,当 o1 和o2 都是引用类型时,用户可以通过重写 compareTo() 方法,实现对其某个属性的比较,如下:
class Demo implements Comparable<Demo>{
int id;
String name;
@Override
public int compareTo(Demo o) {
return this.id-o.id;
}
}
compareTo可以用于比较实现了compareTo方法的类的比较。
比如现有person类
class Person
{
int age;
float height;
}
现定义Person类的比较是基于age的,则实现compareTo为
public int compareTo(Person p)
{
return (this.age - p.age);
}
如果定义Person类的比较是基于 height 的,则实现compareTo为
public int compareTo(Person p)
{
return (this.height - p.height );
}
大于号小于号只能用于基本数据类型的比较,而compareTo虽然是在泛型的时候用的,但是其最终的比较对象还是基本数据类型。即使比较对象是某个类,那么该类也必须是可比较的,也要实现compareTo,所以最终都落在基本数据类型的比较上,所以就这点来说,应该没有区别。
https://www.cnblogs.com/lukelook/p/11101366.html
你所问的很简单,看这篇就够了:https://blog.csdn.net/HYZX_9987/article/details/101069257