android - 如何避免从第二个列表中删除项目会影响 kotlin 中的原始列表
问题描述
我想要做的是保留一个原始列表和两个重复的列表来执行操作。SayorginalList
是一个字符串列表,有 5 个条目
duplicatedList = originalList
secondDuplicatedList = orignalList
duplicatedList.remove(0)
secondDuplicatedList.remove(1)
这些值将从所有三个列表中删除,最后所有三个列表将有 3 个条目。
我见过很多类似的问题,但我不太明白
任何帮助或建议都会很棒。谢谢
解决方案
duplicatedList = originalList
使用等号将使另一个指针指向内存中的相同位置(duplicatedList 不是从头开始实例化的);所以duplicatedList
&都originalList
指向同一个列表
相反,您需要在内存中创建一个与原始列表具有相同值的全新列表。
您可以使用 Collection 的扩展功能toMutableList()
来做到这一点:
duplicatedList = originalList.toMutableList()
secondDuplicatedList = originalList.toMutableList()
这个扩展函数最初创建了一个新列表:
public fun <T> Collection<T>.toMutableList(): MutableList<T> {
return ArrayList(this)
}
推荐阅读
- javascript - 向 SVG 添加自定义属性?
- excel - 录制宏时Excel复制数据出错
- sql - 查询从给定日期时间的下一个 1 小时之间选择记录,并且数据必须小于 7 天
- javascript - javascript 修复 MDN 示例中污染的画布
- wordpress - 从“摘录”字段内容中批量获取自动发布“字幕”
- r - 如何删除数据框中的孩子的孩子以在 R 中绘制网络?
- java - Android UpdateManager 问题 - 并非所有设备都能获得更新信息
- python - Pandas 引用了哪些项目?
- haskell - windows上的haskell STACK BUILD给出权限错误(重命名)
- python - 如何删除出现在另一个列表中的列表列表的元素