java list remove方法使用
for(int i = 0,n = ids.length;i<n;i++){int id = Integer.parseInt(ids[i]);for(int j =0;j <stockApplyDetailList.size();j++){WhStockapplydetail detail = stockApplyDetailList.get(j);System.out.println("id:"+id +"------detail:"+detail.getId());if(id == detail.getId()){stockApplyDetailList.remove(detail);}}}总是报数组下标异常,后来找了一下原因,是和list的remove方法有关,List每remove掉一个元素以后,后面的元素都会向前移动解决方法:倒过来遍历listfor(int i = 0,n = ids.length;i<n;i++){int id = Integer.parseInt(ids[i]);for(int j =stockApplyDetailList.size()-1;j >= 0;j--){WhStockapplydetail detail = stockApplyDetailList.get(j);System.out.println("id:"+id +"------detail:"+detail.getId());if(id == detail.getId()){stockApplyDetailList.remove(detail);}}}用这种方式就好了,呵呵