程序人生

Java Android遍历数组删除数组中多个元素

2021-05-21  本文已影响0人  为自己代颜_

我们在遍历可变数组时,最好不要做删除数组中元素的操作。
因为删除操作可能会引起数组容量的变化,导致数组越界等问题。
以前在使用for循环遍历的时候遇到过这个问题。

此处举例列表存储对象的列表A为mListA;和存储A对象的列表B为mListB,目标是把B中重复的A去掉

解决方案如下:
Kotlin:关键方法使用数组的indexOfFirst方法,如果l mListB.indexOfFirst { A.id == B.id }返回-1说明没有找到重复的元素,如果不是-1则返回数组中所在的元素下标

 mListA?.forEachIndexed { index, A ->
                        var currentIndexListB =
                            mListB.indexOfFirst { it.id == A.id }
                        //-1表示没发现重复的 其它值表明已经发现重复的值并返回当下列表的坐标
                        if (currentIndexListB != -1) {
                           mListB.removeAt(currentIndexListB)
                        }

                    }
上一篇下一篇

猜你喜欢

热点阅读