如何处理String数组的别名

时间:2016-03-08 18:18:57

标签: java arrays alias

使用以下代码,我想知道如何迭代一个String数组,list2,之后为其分配列表的别名,同时更改list3 的元素而不用改变list2的元素:

Identifier(path, state) {
    console.log(state.file.opts.filename);
}

如果我只希望list3的元素用X标记,它会输出以下内容:

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

谢谢!

1 个答案:

答案 0 :(得分:3)

正在修改所有列表,因为它们都指向相同的String对象。您必须复制list才能保留原始值。 String[] list2 = list.clone();