博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 中list进行动态remove处理
阅读量:6999 次
发布时间:2019-06-27

本文共 791 字,大约阅读时间需要 2 分钟。

java中遍历 list遇到需要动态删除arraylist中的一些元素 的情况

错误的方式

for(int i = 0, len = list.size(); i < len; i++){      if(list.get(i) == 1) {         list.remove(i);      }  }

这样会抛出异常

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3      at java.util.ArrayList.RangeCheck(Unknown Source)      at java.util.ArrayList.get(Unknown Source

这个异常是因为删除元素之后未改变相应角标,遍历到最后一个 的时候 就会找不到抛出 这个异常

正确做法删除下标以及定位到遍历位置

for(int i = 0, len = list.size(); i < len; i++){      if(list.get(i) == 1){         list.remove(i);         len--;       i--;    }  }

或者使用Java的Iterator接口来实现遍历

Iterator
iterator = list.iterator(); while(iterator.hasNext()){ int i = iterator.next(); if(i == 1){ iterator.remove(); } }

 

转载于:https://www.cnblogs.com/dashuai01/p/7823387.html

你可能感兴趣的文章