比较字节对象 compareTo 方法与 equals()方法

比较字节对象 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

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

下面 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()方法。

转载请注明出处:码谱记录 » 比较字节对象 compareTo 方法与 equals()方法
标签: