天天看點

Iterator中的remove()方法詳解-Java

對于Iterator中的remove()方法,若使用不當,則會報錯,想要熟練使用remove()方法來删除元素需要深入了解該方法.

文章目錄

  • ​​remove()方法​​
  • ​​删除集合中的所有元素​​
  • ​​java.lang.IllegalStateException異常​​
  • ​​java.util.NoSuchElementException異常​​
  • ​​Java ConcurrentModificationException異常​​
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class IteratorRemoveDemo {
  public static void main(String[] args) {
    List list = new ArrayList(5);
    
    for (int i = 0; i < 5; i++) {
      list.add(i);
    }
    
    System.out.println(list);
    // 移除最後通路的元素
    iterator.next();
    iterator.next();
    iterator.remove();
    System.out.println(list);
  }
}
/*輸出:
[0, 1, 2, 3, 4]
[0, 2, 3, 4]
*/      
Iterator中的remove()方法詳解-Java

remove()方法

該方法移除的是iterator.next()方法最後通路的元素.

删除集合中的所有元素

while(iterator.hasNext()) {//通過周遊來删除list中所有元素
      iterator.next();
      iterator.remove();
    }      

通過周遊集合元素,來依次删除該集合中的元素.當然也可以添加控制條件,來删除集合中想要删除的元素.

java.lang.IllegalStateException異常

( 如果 next方法尚未被調用,或者 remove方法在上次調用 next方法之後已經被調用 )

  • 直接使用remove方法,而未調用next()方法.
  • 當調用next()方法之後,使用了remove()方法,但是接着又使用remove(),則會出現該錯誤.

java.util.NoSuchElementException異常

Java ConcurrentModificationException異常