美文网首页
List中删除元素

List中删除元素

作者: f44148db1e8c | 来源:发表于2019-05-16 13:06 被阅读0次

均属于笔记,仅供个人参考,有问题欢迎指正

1,使用普通的for循环删除,会因为指标前移(list的大小发生了变化,索引也在变化,所以会导致在遍历的时候漏掉某些元素),可能会出现删除后数据不准确或者下标越界异常的问题,所以这种方式是达不到效果的.

for (int i =0; i < datas.size(); i++){

    if (datas.get(i).isSelect()) {

        datas.remove(i);

    }

}


2,使用普通的for循环删除,内部调整索引

for (int i =0; i < datas.size(); i++){

    if (datas.get(i).isSelect()) {

        datas.remove(i);

        i--;

    }

}

3,使用倒序for循环删除

for (int i = datas.size() - 1; i >= 0; i--) {

    if (datas.get(i).isSelect()) {

        lists.remove(i);

    }

}

4,使用迭代器删除

// 获取集合对应的迭代器,用来遍历集合中的元素的。

Iterator<UserBean> iterator = datas.iterator();

while(iterator.hasNext()){

    UserBean user= iterator.next();

    if(user.isSelect()){

        // 注意: 不能用list的remove方法.

        // datas.remove(next);

        // 使用迭代器中的remove()方法,可以删除元素.

        iterator.remove();

    }

}

相关文章

网友评论

      本文标题:List中删除元素

      本文链接:https://www.haomeiwen.com/subject/khzbaqtx.html