1. 程式人生 > >Integer比較是否相等問題

Integer比較是否相等問題

有兩大種情況

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);
		}
	}