循环的问题,当涉及到自身的增减问题时,

 for (int i = 0; i < jsonArray.size(); i++) {
                JSONObject tempJObj = (JSONObject) jsonArray.get(i);
                System.out.println(i+"到第几个的"+tempJObj);        //AutoID
                String mInventrotyIntStr = tempJObj.getString("InventoryInt");
                int mInventoryInt = Integer.valueOf(mInventrotyIntStr);


                if (mInventoryInt > 0) {
                   System.out.println(mInventoryInt + "大于0");
                } else {
                   System.out.println(i+ "等于" +tempJObj);
                   jsonArray.remove(tempJObj);
                }

            }


循环的问题,当涉及到自身的增减问题时,在循环容易   会出现边界的问题,

解决方式:1、 用一个副本来执行循环体   上面 粉红色部分更换为一个副本即可

    2、自己控制好循环的边界(如下此段代码中加上紫色的部分即可)

           for (int i = 0; i < jsonArray.size(); i++) {
                JSONObject tempJObj = (JSONObject) jsonArray.get(i);
                System.out.println(i+"到第几个的"+tempJObj);        //AutoID
                String mInventrotyIntStr = tempJObj.getString("InventoryInt");
                int mInventoryInt = Integer.valueOf(mInventrotyIntStr);


                if (mInventoryInt > 0) {
                   System.out.println(mInventoryInt + "大于0");
                } else {
                   System.out.println(i+ "等于" +tempJObj);
                   jsonArray.remove(tempJObj);

i--;
                }

            }

发布了51 篇原创文章 · 获赞 46 · 访问量 62万+

猜你喜欢

转载自blog.csdn.net/nbxinjian/article/details/52523710