一、equals函數介紹
在Java中,equals函數用於比較兩個對象是否相等,通常用於比較自定義對象。在Integer類中,equals函數比較的是兩個整型數是否相等。
二、equals函數源碼解析
public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }
我們可以發現,equals函數首先判斷傳入的對象是否是一個Integer對象,如果不是,則返回false;如果是,則將其轉化為int類型,然後比較兩個整型數是否相等。
三、使用示例
Integer a = new Integer(5); Integer b = new Integer(5); System.out.println(a.equals(b)); // 輸出true Integer c = 5; Integer d = 5; System.out.println(c.equals(d)); // 輸出true Integer e = 129; Integer f = 129; System.out.println(e.equals(f)); // 輸出true,因為129在緩存範圍內
這裡我們可以看到,equals函數可以比較兩個Integer對象是否相等,也可以比較一個Integer對象和一個int類型的數值是否相等。此外,Java中在-128~127範圍內的整型數值會被緩存,所以當兩個整型數值在這個範圍內相等時,它們對應的Integer對象也會相等。
四、equals函數注意事項
由於equals函數比較的是兩個整型數值是否相等,所以在進行比較時需要注意類型轉化和空指針問題。例如:
Integer g = null; Integer h = 5; System.out.println(g == h); // 報錯,空指針異常 System.out.println(g.equals(h)); // 輸出false
需要注意的是,由於在-128~127範圍內的整型數值被緩存,因此這個範圍外的整型數值對應的Integer對象不一定相等。
五、小結
Integer的equals函數用於比較兩個整型數值是否相等,返回boolean類型。當兩個整型數值在-128~127範圍內時,它們對應的Integer對象也會相等。需要注意類型轉化和空指針問題,以及緩存範圍外的整型數值不一定相等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/271966.html