idsIterator.remove()
抛出 IllegalStateException
的原因通常是因为在调用 remove()
方法之前,没有先调用 next()
方法。Iterator
的 remove()
方法需要在调用 next()
方法之后才能使用,因为它需要知道要删除的元素。
以下是一个简单的示例,说明如何正确使用 Iterator
的 remove()
方法:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> ids = new ArrayList<>();
ids.add(1);
ids.add(2);
ids.add(3);
Iterator<Integer> idsIterator = ids.iterator();
while (idsIterator.hasNext()) {
int id = idsIterator.next();
if (id == 2) {
idsIterator.remove(); // 在调用 next() 之后调用 remove()
}
}
System.out.println(ids); // 输出: [1, 3]
}
}
在这个示例中,我们在调用 remove()
方法之前先调用了 next()
方法,所以不会抛出 IllegalStateException
。
领取专属 10元无门槛券
手把手带您无忧上云