例如,我正在尝试删除程序提供给我的第二个元素。
但它会导致 IllegalStateException。
我做错了什么?
HashSet<String> list = new HashSet<>();
list.add("123");
list.add("qwe");
list.add("asd");
int count = 0;
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
if (count == 1) {
iterator.remove();
}
count++;
}
最佳答案
如果不先调用 iterator.next()
,则无法调用 iterator.remove()
。除此之外,如果不使用 iterator.next() 推进迭代器,您的循环将是一个无限循环。
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
String str = iterator.next();
if (count == 1) {
iterator.remove();
}
count++;
}
关于Java 从集合中删除会导致 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50087089/