List遍歷刪除大坑

當(dāng)我們需要去遍歷刪除集合刪除某幾個(gè)數(shù)據(jù)的時(shí)候很容易出現(xiàn)數(shù)組越界的錯(cuò)誤。
下面是自己常用的兩種方法。
錯(cuò)誤原因:當(dāng)我們刪除集合中的一個(gè)元素之后,下標(biāo)會(huì)發(fā)生改變,導(dǎo)致數(shù)組越界報(bào)錯(cuò)

//遍歷刪除數(shù)組坑
fun main() {

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

    //從a中刪去b中的重復(fù)元素
    //第一種方法:從后往前開始遍歷可以預(yù)防數(shù)組越界
    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]
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、基礎(chǔ)知識(shí):1、JVM、JRE和JDK的區(qū)別:JVM(Java Virtual Machine):java虛擬機(jī)...
    殺小賊閱讀 2,565評(píng)論 0 4
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,851評(píng)論 0 3
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,428評(píng)論 0 2
  • 面向?qū)ο笾饕槍?duì)面向過程。 面向過程的基本單元是函數(shù)。 什么是對(duì)象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,220評(píng)論 0 4
  • 這是我在簡(jiǎn)書的第一篇日記,我決定留給愛情。 我一直認(rèn)為,人類最偉大的情感,是愛情。兩個(gè)毫無血緣的人,相愛相伴,甚至...
    一根繩栓倆蚱蜢閱讀 455評(píng)論 0 0

友情鏈接更多精彩內(nèi)容