舉個栗子
String S1 = new String("網絡工程");
String S2 = new String("網絡工程");
if (S1==S2){
data_list.add("16網絡工程1");
data_list.add("16網絡工程2");
data_list.add("16網絡工程3");
data_list.add("16網絡工程4");
data_list.add("16網絡工程5");
data_list.add("17網絡工程1");
data_list.add("17網絡工程2");
data_list.add("17網絡工程3");
data_list.add("17網絡工程4");
data_list.add("17網絡工程5");
data_list.add("18網絡工程1");
data_list.add("18網絡工程2");
data_list.add("18網絡工程3");
data_list.add("18網絡工程4");
data_list.add("18網絡工程5");
}
你說if裏面的判斷成立嗎?答案是不成立的。
因爲在java裏面,相同的值只會佔用一份內存,而這裏S1和S2爲兩個對象,佔用不同內存,所以S1=S2的返回值爲FALSE。
如果這樣設置變量,String S1 = “網絡工程”;String S2 = “網絡工程”;那麼S1=S2則返回TRUE。
那麼對於兩個對象相等的值應該怎麼判斷呢?
我們可以這樣(用equals方法,該方法經常用於字符串判斷,所以爲避免出現不同對象情況,建議常用此方法):
String S1 = new String("網絡工程");
String S2 = new String("網絡工程");
if (S1.equals(S2)){//這樣是返回TRUE
data_list.add("16網絡工程1");
data_list.add("16網絡工程2");
data_list.add("16網絡工程3");
data_list.add("16網絡工程4");
data_list.add("16網絡工程5");
data_list.add("17網絡工程1");
data_list.add("17網絡工程2");
data_list.add("17網絡工程3");
data_list.add("17網絡工程4");
data_list.add("17網絡工程5");
data_list.add("18網絡工程1");
data_list.add("18網絡工程2");
data_list.add("18網絡工程3");
data_list.add("18網絡工程4");
data_list.add("18網絡工程5");
}