JAVA中循环删除list中元素的方法总结

一、JAVA中循环遍历list有三种方式for循环、加强for循环(也就是常说的foreach循环)、iterator遍历并发

for循环遍历list(会报错函数

  • 问题在于,删除某个元素后,list的大小发生了变化,而你的索引也在变化,因此会致使你在遍历的时候漏掉某些元素
  • 这种方式能够用在删除特定的一个元素时使用,但不适合循环删除多个元素时使用

加强for循环(单线程main函数测试,也会报错测试

  • 删除元素后继续循环会报错误信息ConcurrentModificationException
  • 由于元素在使用的时候发生了并发的修改,致使异常抛出
  • 可是删除完毕立刻使用break跳出,则不会触发报错

iterator遍历线程

  • 这种方式能够正常的循环及删除
  • 但要注意的是,请使用iterator的remove方法
  • 若是用list的remove方法一样会报上面提到的ConcurrentModificationException错误

总结:blog

  • 循环删除list中特定一个元素的,能够使用三种方式中的任意一种,但在使用中要注意上面分析的各个问题
  • 循环删除list中多个元素的,应该使用迭代器iterator方式
相关文章
相关标签/搜索