如何处理字符串数组的别名
How to handle aliases for String arrays
使用以下代码,我想知道如何遍历一个字符串数组 list2,在 为它分配一个别名 list 之后,同时更改 list3 [=18] 的元素=]没有改变list2的元素:
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]);
}
}
}
当我只想用 Xs 标记 list3 的元素时,它会输出以下内容:
X
Yay
X
Hungry
X
X
Yay
X
Hungry
X
谢谢!
正在修改所有列表,因为它们都指向相同的 String 对象。您必须复制 list
才能保持其原始值。 String[] list2 = list.clone();
使用以下代码,我想知道如何遍历一个字符串数组 list2,在 为它分配一个别名 list 之后,同时更改 list3 [=18] 的元素=]没有改变list2的元素:
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]);
}
}
}
当我只想用 Xs 标记 list3 的元素时,它会输出以下内容:
X
Yay
X
Hungry
X
X
Yay
X
Hungry
X
谢谢!
正在修改所有列表,因为它们都指向相同的 String 对象。您必须复制 list
才能保持其原始值。 String[] list2 = list.clone();