如何避免从第二个列表中删除项目会影响 kotlin 中的原始列表

How to avoid remove item from second list affects the original list in kotlin

我想做的是保留一个原始列表和两个重复的列表来执行操作。说 orginalList 是一个字符串列表,有 5 个条目

duplicatedList = originalList
secondDuplicatedList = orignalList
duplicatedList.remove(0)
secondDuplicatedList.remove(1)

值已从所有三个列表中删除,最后所有三个列表将有 3 个条目。

看到很多类似的问题,但不是很明白

任何帮助或建议都会很棒。谢谢

duplicatedList = originalList

使用等号将使另一个指针指向内存中的相同位置(duplicatedList 不是从头开始实例化);所以 duplicatedListoriginalList 都指向同一个列表

相反,您需要在内存中创建一个与原始列表具有相同值的全新列表。

您可以使用集合的扩展功能 toMutableList() 来做到这一点:

duplicatedList = originalList.toMutableList()
secondDuplicatedList = originalList.toMutableList()

这个扩展函数最初创建了一个新列表:

public fun <T> Collection<T>.toMutableList(): MutableList<T> {
    return ArrayList(this)
}

尝试

duplicatedList.addAll(原始列表)