Java Android遍歷數(shù)組刪除數(shù)組中多個(gè)元素

我們?cè)诒闅v可變數(shù)組時(shí),最好不要做刪除數(shù)組中元素的操作。
因?yàn)閯h除操作可能會(huì)引起數(shù)組容量的變化,導(dǎo)致數(shù)組越界等問(wèn)題。
以前在使用for循環(huán)遍歷的時(shí)候遇到過(guò)這個(gè)問(wèn)題。

此處舉例列表存儲(chǔ)對(duì)象的列表A為mListA;和存儲(chǔ)A對(duì)象的列表B為mListB,目標(biāo)是把B中重復(fù)的A去掉

解決方案如下:
Kotlin:關(guān)鍵方法使用數(shù)組的indexOfFirst方法,如果l mListB.indexOfFirst { A.id == B.id }返回-1說(shuō)明沒(méi)有找到重復(fù)的元素,如果不是-1則返回?cái)?shù)組中所在的元素下標(biāo)

 mListA?.forEachIndexed { index, A ->
                        var currentIndexListB =
                            mListB.indexOfFirst { it.id == A.id }
                        //-1表示沒(méi)發(fā)現(xiàn)重復(fù)的 其它值表明已經(jīng)發(fā)現(xiàn)重復(fù)的值并返回當(dāng)下列表的坐標(biāo)
                        if (currentIndexListB != -1) {
                           mListB.removeAt(currentIndexListB)
                        }

                    }
?著作權(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)容

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