问题由来:
想用foreach遍历,而后修改数组里面的元素,代码例子以下:
(主要是以为数组的话是引用 这么改应该有效吧)web
String[] ids = {"1","2"};
for (String id : ids){
id = "xx" + id;
}
而后发现遍历之后仍是输出1,2。数组
那么不由会产生疑问?难道这个id只是new出来的,和ids里面的没有关系?具体的就不知道了,反正发现了这么一个现象。svg
若是想修改的话,我的以为就只能用for循环了。spa
引伸:
而后去网上搜,说是foreach遍历的时候list不能添加和删除(可是没说不能修改)。
就试了一下,code
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"); //能够修改为功
}