wu_zf1234 2016-07-25 08:27 采纳率: 0%
浏览 1092

Java代码ArrayList删除其中值的问题,请看下面的代码有问题么?

//删除集合中的偶数数据
List arr = new ArrayList();
for(int i = 0; i < 20; i++){
arr.add(i);
}

    for(int i = 0; i <arr.size() ; i++){
        if(arr.get(i)%2==0){
            arr.remove(i);
        }
    }
    for(int i = 0; i < arr.size(); i++){
        System.out.print(arr.get(i)+" ");
    }

以上的代码是否有问题?是不是出了越界的异常?应该改成这样么?
List arr = new ArrayList();
for(int i = 0; i < 20; i++){
arr.add(i);
}

    for(int i = 0; i <arr.size() ; i++){
        if(arr.get(i)%2==0){
            arr.remove(i);
            i--;                //加上这一句是否就没问题了?
        }
    }
    for(int i = 0; i < arr.size(); i++){
        System.out.print(arr.get(i)+" ");
    }
  • 写回答

4条回答

  • rage_angel 2016-07-25 08:59
    关注
        @Test
    public void deleteEven() {
        List<Integer> arr = new ArrayList<Integer>();
        System.out.println("删除前数组:");
        for (int i = 0; i < 20; i++) {
            arr.add(i);
            System.out.print(i + ",");
        }
        System.out.println();
    
        for (int i = 0; i < arr.size(); i++) {
            if (arr.get(i) % 2 == 0) {
                arr.remove(i);
            }
        }
        System.out.println("删除后数组:");
        for (int i = 0; i < arr.size(); i++) {
            System.out.print(arr.get(i) + ",");
        }
    }
    

    删除前数组:
    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
    删除后数组:
    1,3,5,7,9,11,13,15,17,19,

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大