我是靠谱客的博主 拼搏白羊,这篇文章主要介绍for循环删除List中的数据产生的问题,现在分享给大家,希望可以做个参考。

在应用中大家可能会碰到一些场景 比如 一个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中内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(138)

评论列表共有 0 条评论

立即
投稿
返回
顶部