美文网首页
List遍历删除大坑

List遍历删除大坑

作者: Singleton丶 | 来源:发表于2019-10-11 20:04 被阅读0次

当我们需要去遍历删除集合删除某几个数据的时候很容易出现数组越界的错误。
下面是自己常用的两种方法。
错误原因:当我们删除集合中的一个元素之后,下标会发生改变,导致数组越界报错

//遍历删除数组坑
fun main() {

    val a = mutableListOf("a", "b", "c", "d", "e") // 待遍历的集合
    val b = listOf("b", "d")// 用于查重集合

    //从a中删去b中的重复元素
    //第一种方法:从后往前开始遍历可以预防数组越界
    for (i in a.size - 1 downTo 0) {
       if (b.contains(a[i]))
            a.removeAt(i)
    }
    println(a)
    //输出[a, c, e]


    ///第二种方法:迭代器
    val it = a.iterator()
    while (it.hasNext()) {
        if (b.contains(it.next())) {
            it.remove()
        }
    }
    println(a)
    //输出[a, c, e]
}

相关文章

  • List遍历删除大坑

    当我们需要去遍历删除集合删除某几个数据的时候很容易出现数组越界的错误。下面是自己常用的两种方法。错误原因:当我们删...

  • Java删除List中的元素

    for循环遍历删除 使用for遍历删除的问题在于删除某元素后,List的大小变化了,会导致遍历时漏掉某些元素,例如...

  • golang list用法笔记

    依赖 遍历 go的list也是用双向循环链表实现的,在尾部追加用PushBack() 删除元素 删除使用list....

  • python3 list遍历时删除

    问题:python3遍历list过程中通过list的remove删除列表元素后,将导致遍历元素不完整。 复现: 输...

  • List与Map的遍历过程中删除元素

    List遍历过程中删除元素 使用索引下标遍历的方式 示例:删除列表中的2 输出结果: 问题:结果显示只删除了一个2...

  • Linked List

    【1】链表删除 203. Remove Linked List Elements 解法一:遍历删除,需要新建一个d...

  • 细节决定成败,移除List中的元素,你的姿势对了吗?

    之前遇到对List进行遍历删除的时候,出现来一个 ConcurrentModificationException ...

  • List循环删除后遍历

    for循环删除的错误 由于删除过程中,列表结构发生改变,所以后面的遍历会报错,报错信息如下: Iterator删除...

  • list遍历时候删除

    转载出处:http://blog.csdn.net/izard999/article/details/670873...

  • 遍历删除list中的元素

    准备List,填充测试元素 List list = new ArrayList (); [1231, 55, 5...

网友评论

      本文标题:List遍历删除大坑

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