比较字节对象 compareTo 方法与 equals()方法
在Java中,Byte类提供了compareTo()和equals()方法来比较Byte对象的值。
compareTo()方法 比较字节对象
此方法按数值顺序比较两个Byte对象。如果当前对象的byte值等于参数对象的byte值,则返回0;如果当前对象的byte值小于参数对象的byte值,则返回一个负整数;如果当前对象的byte值大于参数对象的byte值,则返回一个正整数。
✍方法声明
public int compareTo(Byte anotherByte)
- 📥入参:anotherByte要比较的Byte。
- 🪐返回值:如果此Byte等于参数Byte,则返回O;
- 如果此Byte在数字上小于参数Byte,则返回小于O的值;
- 如果此Byte在数字上大于参数Byte,则返回大于0的值。
- 🐛抛出异常NullPointerException:如果 anotherByte 为 null。
public static void main(String[] args) {
Byte b1 = new Byte("1");
Byte b2 = new Byte("-2");
// 相当于 1-(-2) = 3
int compare1 = b1.compareTo(b2);
System.out.println(compare1);
Byte b3 = new Byte("99");
// 相当于 1-99 = -98
int compare2 = b1.compareTo(b3);
System.out.println(compare2);
}
方法相当于用当前的 byte 值减去入参的 byte 值。
3
-98
-98
equals()方法 判断字节相等
将此对象与指定对象比较。当且仅当参数不为null,而是一个与此对象一样包含相同Byte值的byte对象时,结果才为true。
✍方法声明
public boolean equals(Object obj)
- 📥入参:obj为要比较的对象。
- 🪐返回值:当且仅当参数不为null而是一个与此对象一样包含相同Byte值的byte对象时,结果才为true。
public static void main(String[] args) {
Byte b1 = new Byte("1");
Byte b2 = new Byte("-2");
Byte b3 = 1;
boolean bool1 = b1.equals(b2);
boolean bool2 = b1.equals(b3);
boolean equals = b1.equals(null);
System.out.println(bool1);
System.out.println(bool2);
System.out.println(equals);
}
如果被比较的参数为 null,则返回 false。
false
true
false
true
false
下面 b1 属于 Byte 对象,而 b2 属于原始 byte 类型。
public static void main(String[] args) {
Byte b1 = 1;
byte b2 = 1;
boolean equals = b1.equals(b2);
System.out.println(equals);
}
从结果看, equals() 方法仅比较了数值,没有考虑类型。
true
📝总结
compareTo()方法适用于比较两个Byte对象的数值大小,它遵循数值的自然顺序进行比较。
equals()方法用于判断两个Byte对象是否具有相同的值。
当需要比较Byte对象时,应根据实际需求选择使用compareTo()或equals()方法。如果比较的目的是确定两个Byte对象的数值是否相等,可以使用equals()方法;如果需要按照数值顺序进行比较,应使用compareTo()方法。