如何避免从第二个列表中删除项目会影响 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 不是从头开始实例化);所以 duplicatedList
和 originalList
都指向同一个列表
相反,您需要在内存中创建一个与原始列表具有相同值的全新列表。
您可以使用集合的扩展功能 toMutableList()
来做到这一点:
duplicatedList = originalList.toMutableList()
secondDuplicatedList = originalList.toMutableList()
这个扩展函数最初创建了一个新列表:
public fun <T> Collection<T>.toMutableList(): MutableList<T> {
return ArrayList(this)
}
尝试
duplicatedList.addAll(原始列表)
我想做的是保留一个原始列表和两个重复的列表来执行操作。说 orginalList
是一个字符串列表,有 5 个条目
duplicatedList = originalList
secondDuplicatedList = orignalList
duplicatedList.remove(0)
secondDuplicatedList.remove(1)
值已从所有三个列表中删除,最后所有三个列表将有 3 个条目。
看到很多类似的问题,但不是很明白
任何帮助或建议都会很棒。谢谢
duplicatedList = originalList
使用等号将使另一个指针指向内存中的相同位置(duplicatedList 不是从头开始实例化);所以 duplicatedList
和 originalList
都指向同一个列表
相反,您需要在内存中创建一个与原始列表具有相同值的全新列表。
您可以使用集合的扩展功能 toMutableList()
来做到这一点:
duplicatedList = originalList.toMutableList()
secondDuplicatedList = originalList.toMutableList()
这个扩展函数最初创建了一个新列表:
public fun <T> Collection<T>.toMutableList(): MutableList<T> {
return ArrayList(this)
}
尝试
duplicatedList.addAll(原始列表)