高分悬赏,用Java语言的compareTo实现的比较和大于号小于号的区别

高分悬赏,用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