Integer比較是否相等問題
阿新 • • 發佈:2019-02-15
有兩大種情況
1. Integer 與 Integer 進行比較
2. Integer 與 int 進行比較
第一種:Integer 與 int進行比較
Integer 與int進行比較,會自動比較 兩個的值是否相等,如同 int與int這種基本型別的比較一樣。第二種:Integer 與 Integer 進行比較
Integer與 int不同,int是基本資料型別,Integer是 int的封裝類,兩者不同。 java 的 物件進行比較,有兩種:一個是 比較引用地址(相當於C語言指標),另一種就是比較內部資料。 程式設計當中,一般都不是比較引用地址,而是比較內部資料。public boolean equals(Integer a,Integer b){ if(a==b){ //如果引用地址是否相同(包括都為null)則返回真 return true; }if(a!=null){ return a.equals(b); } return false;//如果 a 為空返回 false(當b也為null,前面就已經返回 true) }
當然,也要通用於比較 Short Long 等等
public boolean equals(Object a,Object b){
if(a==b){ //如果引用地址是否相同(包括都為null)則返回真
return true;
}if(a!=null){
return a.equals(b);
}
return false;//如果 a 為空返回 false(當b也為null,前面就已經返回 true)
}
或者
public final <T> boolean equals(T a,T b){ if (a== null) { return b== null; } else { return a.equals(b); } }