java里增强for循环【for(String a : arrayList)】里面可以修改数据吗?
发布网友
发布时间:2022-05-10 16:06
我来回答
共5个回答
热心网友
时间:2023-10-15 03:48
java里增强for循环【for(String a: arrayList)】里面可以修改数据,但是不能删除数据,如下例子:
修改集合:
import java.util.ArrayList;
import java.util.List;
public class TestA {
public static void main(String[] args){
//集合
List<String> arrayList=new ArrayList<String>();
//存放元素
arrayList.add("hello");
arrayList.add("ninghao");
arrayList.add("bye");
//集合标量
int index=0;
//遍历集合
for(String a:arrayList){
//输出集合对象
System.out.println(a);
//修改集合对象
arrayList.set(index, "hi");
//标量加一
index++;
}
//输出集合
System.out.println(arrayList);
}
}
结果:
hello
ninghao
bye
[hi, hi, hi]
删除集合元素:
import java.util.ArrayList;
import java.util.List;
public class TestA {
public static void main(String[] args){
//集合
List<String> arrayList=new ArrayList<String>();
//存放元素
arrayList.add("hello");
arrayList.add("ninghao");
arrayList.add("bye");
//集合标量
int index=0;
//遍历集合
for(String a:arrayList){
//输出集合对象
System.out.println(a);
//删除元素
arrayList.remove(index);
//标量加一
index++;
}
//输出集合
System.out.println(arrayList);
}
}
结果:
hello
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at app.TestA.main(TestA.java:19)
由以上例子可以看出,增强for循环,在循环里可以修改集合元素,但是不能删除集合元素。
热心网友
时间:2023-10-15 03:49
不能修改,a是引用,修改a的值只是让a指向其他的String对象,并没有改变list中的内容
热心网友
时间:2023-10-15 03:49
不能,不能修改,其他的比如:输出、累加可以。
热心网友
时间:2023-10-15 03:50
不可以,这个只是取出数据,并不能修改
热心网友
时间:2023-10-15 03:50
for循环可以修改对象内容 , 但是重新赋值无效 , 另外不可以删除和新增元素
集合或者数组中 , 存放的是对象的引用 , 而不是对本身 , 对于字符串来说 , 存的就是这个字符串, 而不是这个字符串对象
如果你在循环中修改字符串, 其实是对字符串重新赋值 , 但是原本字符串的那个引用, 是没有发生改变的 , 所以修改没有用
如果你放的是一个对象 , 比如Person, 那么你可以在循环中对person这个对象中的属性进行修改 , 比如修改他的 age属性 , 但是不能重新赋值, 也就是不能用 p = new Person(); 代码不会报错 , 但是这个操作不会影响集合中这个元素的内容
另外 ,增强for循环其他地方都和普通for循环一样, 唯一的不同是 , 他不能获得集合的下标 , 也就是说不能对指定位置的元素进行处理 , 只能根据元素本身的属性进行一系列判断