Java 如何处理字符串数组的别名

Java 如何处理字符串数组的别名,java,arrays,alias,Java,Arrays,Alias,使用下面的代码,我想知道如何在为一个字符串数组指定一个list的别名之后,在不改变list2的元素的情况下,在改变list3的元素时,遍历它: public class Sample { public static void main(String[] args) { String[] list = {"Hello", "Yay", "Okay", "Hungry", "Wheeee"}; String[] list2 = list; St

使用下面的代码,我想知道如何在为一个字符串数组指定一个list的别名之后,在不改变list2的元素的情况下,在改变list3的元素时,遍历它:

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

谢谢

正在修改所有列表,因为它们都指向相同的字符串对象。您必须复制
列表
,以保持其原始值<代码>字符串[]列表2=list.clone()

正在修改所有列表,因为它们都指向相同的字符串对象。您必须复制
列表
,以保持其原始值<代码>字符串[]列表2=list.clone()

复制阵列。复制阵列。
X
Yay
X
Hungry
X
X
Yay
X
Hungry
X