有时候知识点多了,难免会有忘记,这不,昨日写了一个删除List元素的循环,发现怎么也删不干净指定的元素,竟然一直没想起List元素动态删除需要倒着删:
业务:需要删除支出和收入均为0的数据,由于两个字段为BigDecimal类型,故转为字符串判断。
错误代码:
for(int i = 0; i<list.size(); i++){
if(list.get(i).get("pay").toString()=="0" && list.get(i).get("income").toString()=="0"){
list.remove(i);
}
}
正确代码:
for(int i = list.size()-1; i >= 0; i--){
if(list.get(i).get("pay").toString()=="0" && list.get(i).get("income").toString()=="0"){
list.remove(i);
}
}