比较长整型 compareTo 方法与 equals()
比较两个 Long 对象,可以用到 compareTo() 方法,如果仅仅需要知道两者是否相等,可以用 equals() 方法。
比较长整数 compareTo()
✍方法声明
public int compareTo(Long anotherLong);
- 📥入参:anotherLong是要比较的Long。
- 🪐返回值:如果该Long等于Long参数,则返回0值;如果Long在数字上小于Long参数,则返回小于0的值;如果Long在数字上大于Long参数,则返回大于0的值(有符号的比较)。
public static void main(String[] args) {
Long num1 = new Long("12345");
Long num2 = new Long(12345);
Long num3 = new Long(123456L);
int val = num1.compareTo(num2);
System.out.println("Long 类型数值 " + num1 + " 与 " + num2 + " compareTo " + val);
int val2 = num1.compareTo(num3);
System.out.println("Long 类型数值 " + num1 + " 与 " + num3 + " compareTo " + val2);
}
Long 类型数值 12345 与 12345 compareTo 0
Long 类型数值 12345 与 123456 compareTo -1
Long 类型数值 12345 与 123456 compareTo -1
判断长整数对象相等 equals()
将此对象与指定对象进行比较。当且仅当该参数不是null,且Long对象与此对象包含相同的long值时,结果才为true。
✍方法声明
public boolean equals(Object obj)
- 📥入参:obj为要比较的对象。
- 🪐返回值:如果对象相同,则返回true,否则返回false。
public static void main(String[] args) {
Long num1 = new Long("12345");
Long num2 = new Long(12345);
boolean bool1 = num1.equals(num2);
boolean bool2 = num1.equals(null);
System.out.println("Long 数值 " +num1+ " 与 " + num2 +" 是否相等 "+bool1);
System.out.println("Long 数值 " +num1+ " 与 null 是否相等 "+bool2);
}
Long 数值 12345 与 12345 是否相等 true
Long 数值 12345 与 null 是否相等 false
Long 数值 12345 与 null 是否相等 false
📝总结
Long类的compareTo()和equals()方法提供了比较两个长整型对象的功能。
compareTo()方法遵循有符号的比较规则,而equals()方法则用于检查两个对象是否具有相同的数值内容。
在使用这些方法时,重要的是要理解equals方法在Object类中的默认实现是比较对象引用,而Long类重写了这个方法以比较数值。这使得即使两个Long对象在内存中是不同的实例,只要它们的数值相等,equals方法也会返回true。这种比较方式对于处理包装类型的长整型数据非常重要,因为它允许开发者在逻辑上比较长整型的值,而不仅仅是比较对象引用。