for (int j = 0; j < list.size(); j++) {
if (list.get(j).getSign() != null && list.get(j).getSign() == 1) {
list.remove(j);
}
} // 修改前
Iterator<SCMInvoiceListModel> it = list.iterator();
while(it.hasNext()){
SCMInvoiceListModel x = it.next();
if(x.getSign() != null && x.getSign() == 1){
it.remove();
}
} // 修改后
今天写了一个循环删除LIST的方法,用的for each循环,
里面用 list.remove() 删除满足条件的多个元素,由于每删除一个元素的时候,LIST的长度被改变,所以LIST.remove(i)会造成删除错误的下标元素。
现已改为迭代器循环删除。