关于foreach和for的一点思考

问题由来:
想用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"); //可以修改成功
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值