英文:
Removing elements from array in java throws exception
问题
我对Java还很新,仍在努力理解这里的数组工作方式。以下代码,我原以为会打印出 "2":
import java.util.ArrayList;
public static void main(String[] args) {
ArrayList<String> myArray = new ArrayList<String>();
myArray.add("1");
myArray.add("2");
myArray.add("1");
myArray.add("1");
for (String s: myArray){
if(s.equals("1"))
myArray.remove(s);
}
for (String s: myArray) {
System.out.println(s);
}
}
在执行时抛出以下异常:
Exception in thread "main" java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1042)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:996)
at ex.main(ex.java:40)
就像我所说的,这可能是一个愚蠢的问题,但是我这有限的经验无法看出这里发生了什么。
非常感谢您的帮助。
英文:
I'm quite new to java and I'm still trying to figuring out how arrays work here. The following code, which I thought would print "2":
import java.util.ArrayList;
public static void main(String[] args) {
ArrayList<String> myArray = new ArrayList<String>();
myArray.add("1");
myArray.add("2");
myArray.add("1");
myArray.add("1");
for (String s: myArray){
if(s == "1")
myArray.remove(s);
}
for (String s: myArray) {
System.out.println(s);
}
}
Throws this exception when executing:
Exception in thread "main" java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1042)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:996)
at ex.main(ex.java:40)
As I said this might be a stupid question, but my unexperienced eyes just can't see what is happening here.
Thank you all in advance.
专注分享java语言的经验与见解,让所有开发者获益!
评论