问题由来:
想用foreach遍历,然后修改数组里面的元素,代码例子如下:
(主要是觉得数组的话是引用 这么改应该有效吧)
String[] ids = {"1","2"};
for (String id : ids){
id = "xx" + id;
}
然后发现遍历以后还是输出1,2。
那么不禁会产生疑问?难道这个id只是new出来的,和ids里面的没有关系?具体的就不知道了,反正发现了这么一个现象。
如果想修改的话,个人觉得就只能用for循环了。
引申:
然后去网上搜,说是foreach遍历的时候list不能添加和删除(但是没说不能修改)。
就试了一下,
List xli = new ArrayList();
xli.add("0");
xli.add("1");
xli.add("2");
for (Object object : xli) {
System.out.println(object);
xli.add("4"); //报错 报错原理也还是不知道,肯定是有内在的逻辑的。
xli.remove(0); //报错
xli.set(0, "10"); //可以修改成功
}