关于foreach和for的一点思考

来源:互联网 发布:网络接入管理软件 编辑:程序博客网 时间:2024/06/05 03:15

问题由来:
想用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"); //可以修改成功}
原创粉丝点击