概述
在应用中大家可能会碰到一些场景 比如 一个listview 删除选中条目
这需要去查找选中项并移除 但是list 集合 坐标会前移 所以第二次删除的时候就会有找不到的清空也就是空指针或者其他问题
解决方案有两个 一个是用迭代器另外一个就是倒序list删除
迭代器
Iterator it = appAdapter.getData().iterator();
while (it.hasNext()) {
Appli appli = (Appli) it.next();
if (appli.isCheck) {
it.remove();
}
}
倒序删除
for (int i = groupFileorPhotoList.size()-1; i >=0; i--) {
List<ChildFileorPhoto> photos = groupFileorPhotoList.get(i).getChildFileorPhoto();
for (int j = photos.size()-1; j >=0; j--) {
ChildFileorPhoto childPhoto = photos.get(j);
if (childPhoto.isCheck()) {
photos.remove(childPhoto);
if (!(photos.size()>0)) {//如果childe数据集合不大于0 就说明childe被清空就要移除掉当前grouitem
groupFileorPhotoList.remove(i);
}
}
}
}
最后
以上就是拼搏白羊为你收集整理的for循环删除List中的数据产生的问题的全部内容,希望文章能够帮你解决for循环删除List中的数据产生的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复