你将在面试中被问这个问题很多次,比如,在Java中迭代器(Iterator)如何工作的,怎么删除List中的元素?什么时候抛出IllegalStateException
? 什么时候在会抛出ConcurrentModificationException
? Iterator和ListIterator之间的区别?
什么时候抛出IllegalStateException
Java迭代器接口定义如下
public interface Iterator<E> {
boolean hasNext();
E next();
void remove();
}
hasNext() 如果仍有元素可以迭代,则返回 true。
next() 返回迭代的下一个元素。
remove() 从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。否则抛出IllegalStateException
,如下
Iterator<Integer> iterator1=arrayList.iterator</