java吧 关注:1,245,899贴子:12,721,963
  • 9回复贴,共1

Arraylist 的for i 循环 remove为什么不报错

只看楼主收藏回复

public static List<Integer> Sx(List<Integer> list){
for(int i=0;i<list.size();i++){
int num=list.get(i);
if(num%2!=0){
list.remove(i);
}
}


IP属地:北京1楼2019-03-10 17:44回复
    为什么会报错?你remove了一个,list.size()就变小了呀,i永远在范围之内的


    来自Android客户端3楼2019-03-10 19:24
    收起回复
      list.size()是确定的值,如果循环的是list就会报错


      IP属地:浙江4楼2019-03-10 19:34
      收起回复
        结果都错了,


        IP属地:广东来自Android客户端5楼2019-03-10 20:56
        回复
          你用foreach遍历就抱报错了


          IP属地:陕西来自Android客户端6楼2019-03-10 22:47
          回复
            虽然不报错,但是结果会有影响,比如("java","jvm","jvm","jvm","docker","mysql"); fori遍历删除jvm. 跑出来结果会不对。


            IP属地:陕西7楼2022-08-24 21:13
            回复