概述
案例:遍历并删除元素
需求:
① 某个班级的考试在系统上进行,成绩大致为:98, 77, 66, 89, 79, 50, 100
② 现在需要把先把成绩80分以下的数据去掉
分析:
① 定义ArrayList集合存储多名学生的成绩
② 遍历集合中每个元素,如果元素值低于80分,去掉它
1.先创建一个ArrayList集合存储几位学生的成绩
ArrayList<Integer> scores = new ArrayList<>();
scores.add(98);
scores.add(77);
scores.add(66);
scores.add(89);
scores.add(79);
scores.add(50);
scores.add(100);
System.out.println(scores);
2.把低于80分的成绩从集合中去掉
(1) 错误方法
这样遍历成功一个数据后,后面的数据会往前进一步导致直接跳过该数据遍历到下一个数据
for(int i= 0; i < scores.size(); i++){
int score = scores.get(i);
if(score < 80){
//删除低于80的分数
scores.remove(i);
}
}
运行截图:
(2) 问题:还存在低于80分的成绩没有被删除!
解决方案一:
每遍历完一个索引,回退一步,这样可以避免跳过进位的数据
for(int i = 0; i < scores.size(); i++){
int score = scores.get(i);
if (score < 80){
scores.remove(i);
i--;//删除成功后必须退一步,这样可以保证下次回到这个位置,这样就不会跳过数据
}
}
解决方案二:
从后面往前遍历
for(int i = scores.size() - 1; i >= 0; i--){
int score = scores.get(i);
if (score < 80){
scores.remove(i);
}
}
System.out.println(scores);
运行截图:
最后
以上就是称心秀发为你收集整理的Java-ArrayList集合遍历并删除元素报错解决方法的全部内容,希望文章能够帮你解决Java-ArrayList集合遍历并删除元素报错解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复