一直以為是數據庫的數據取錯了,導致后面for循環出錯。慢慢調試之后,發現這原來是一個坑。回到正題
(錯誤示范:使用for循環刪除list集合)
for(int i=0;i<list.size();i++) { if(list.get(i)!=0) { list.remove(i); } }
錯誤的原因是每刪除list集合的一個元素,list的大小都在發生改變,從而導致索引也在發生改變,從而刪除的時候會漏過一些元素。
(正確示范:使用迭代器刪除list集合)
Iterator<Integer> it=list.iterator(); while(it.hasNext()) { Integer m=it.next(); if(m!=0) { it.remove(); } }