2016-03-08 40 views
0

用下面的代碼,我想知道如何通過一個字符串數組,list2中,後迭代分配給它列表的一個別名,而改變項目list3 的元素,而不改變元件列表2的:如何處理別名字符串數組

public class Sample { 
    public static void main(String[] args) { 
     String[] list = {"Hello", "Yay", "Okay", "Hungry", "Wheeee"}; 
     String[] list2 = list; 
     String[] list3 = list; 

     for (int i = 0; i < list2.length; i++) { 
      if (i % 2 == 0) { 
       list3[i] = "X"; 
      } 
     } 

     for (int i = 0; i < list2.length; i++) { 
      System.out.println(list2[i]); 
     } 

     for (int i = 0; i < list3.length; i++) { 
      System.out.println(list3[i]); 
     } 
    } 
} 

將輸出,當我想只有項目list3的元素被標有兩個X以下幾點:

X 
Yay 
X 
Hungry 
X 
X 
Yay 
X 
Hungry 
X 

謝謝!

+4

製作數組的副本。 – resueman

回答

3

所有列表正在被修改,因爲它們都指向相同的String對象。您必須複製list以保持其原始值。 String[] list2 = list.clone();