我正在尝试使用删除方法,但是因为我不断收到错误而导致我搞砸了:
List<String> list1 = new ArrayList<String>();
list1.add("Apple");
list1.add("Bus");
list1.add("Cat");
list1.add("Dog");
String ne = list1.listIterator().next();
System.out.println(ne);
list1.listIterator().remove();
remove语句会抛出错误吗?谁能告诉我为什么? 当我只使用iterator代替listIterator时会发生同样的事情吗?
答案 0 :(得分:3)
您的代码是正确的,因为每次调用ListIterator#remove()
时,您都可以拨打next()
一次(请参阅Javadoc)。但是,在您的代码中,您实际上是在 new 列表迭代器上调用remove()
,而不是之前使用的那个。{1}}。尝试下面的代码,希望你明白你做错了什么:
List<String> list1 = new ArrayList<String>();
list1.add("Apple");
list1.add("Bus");
list1.add("Cat");
list1.add("Dog");
// retain a reference to the same list iterator
ListIterator<String> list1itr = list1.listIterator();
String ne = list1itr.next();
System.out.println(ne);
list1itr.remove();