public class Test1 {
public static void main(String[] args) throws Exception {
LinkedList<Integer> list = new LinkedList<>();
list.add(0);
list.add(1);
list.add(2);
list.add(3);
ListIterator<Integer> it = list.listIterator();
list.addFirst(10);
it.remove();
}
}
显然这个代码会报错, 因为在调用it.remove()之前, 对list做了修改
那么 在JAVA中 有没有什么办法能够
LinkedList
的迭代器不支持这么搞..(除了自己实现链表)
感觉这个iterator在此例子中没有必要,迭代器一般用来在遍历元素的时候,可能涉及到删除使用。如果有元素的修改,则应该重新获得。而在多线程环境,list就不太适合做共享变量了,采取重新赋值会好一些。
– 。淑女范erり 4年前