java中使用for循环删除List集合的陷阱
2024-08-26 13:24:28
一直以为是数据库的数据取错了,导致后面for循环出错。慢慢调试之后,发现这原来是一个坑。回到正题
(错误示范:使用for循环删除list集合)
for(int i=0;i<list.size();i++) {
if(list.get(i)!=0) {
list.remove(i);
}
}
错误的原因是每删除list集合的一个元素,list的大小都在发生改变,从而导致索引也在发生改变,从而删除的时候会漏过一些元素。
(正确示范:使用迭代器删除list集合)
Iterator<Integer> it=list.iterator();
while(it.hasNext()) {
Integer m=it.next();
if(m!=0) {
it.remove();
}
}
最新文章
- Minor【 PHP框架】1.简介
- ios label 自动计算行高详解
- 当程序以Windows Services形式启动时当前路径不对
- C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别
- python学习笔记之迭代器和函数(第三天)
- JavaScript中sort方法的一个坑(leetcode 179. Largest Number)
- URL参数GB2312和UTF-8编码 自动识别
- Audrion小车实验过程
- 高校手机签到系统——第一部分Authority权限系统(下)
- BZOJ4196 软件包管理器
- Selenium Grid 运行报错 Exception thrown in Navigator.Start first time ->;Error forwarding the new session Empty pool of VM for setup Capabilities
- IE8下兼容rgba颜色的半透明背景
- jsp EL表达式 字符串的比较
- java 流程执行 循环 foreach循环
- javaScrip中的“?”
- JavaScript编写了一个计时器
- Nagios监控lvs服务
- Maven下从HDFS文件系统读取文件内容
- 自己绘制table,加分页
- Pymysql部分