android - 制作浮点数的多维数组列表的副本
问题描述
今天在调试我的应用程序时,我发现我的<ArrayList<ArrayList<ArrayList<Float>>>
.
我的目标是制作该 ArrayList 的完整副本,因为现在当我更改 ArrayList 副本中的某些内容时,它也会更改原始 ArrayList。
所以我有这样的东西
var first = ArrayList<ArrayList<ArrayList<Float>>>()
var second = ArrayList<ArrayList<Float>>()
var third = ArrayList<Float>()
for(j in allData) {
first.add(j.clone() as ArrayList<ArrayList<Float>>)
for(k in j)
{
second.add(k.clone() as ArrayList<Float>)
for(l in k)
{
third.add(l.toFloat())
}
}
}
normalizedAllData = first.clone() as ArrayList<ArrayList<ArrayList<Float>>>
normalizedAllData
在哪里<ArrayList<ArrayList<ArrayList<Float>>>
我应该如何创建一个完整的副本,以便新的 ArrayList 不会指向原始的 ArrayList?
谢谢您的帮助
解决方案
您不需要复制,Floats
因为它们是不可变的。
您可以使用嵌套map
调用来创建列表的副本,并将结果包装在ArrayList
构造函数中:
val normalizedAllData = ArrayList(allData.map { innerList ->
ArrayList(innerList.map { ArrayList(it) })
})
推荐阅读
- vue.js - 在节点 13.9.0 上使用 nuxt 进行开玩笑测试时导入 vue-awesome 图标错误
- python-3.x - 如何对文件夹中的多个 .txt 文件执行正则表达式(Python)?
- python-3.x - 进行回归时的gpflow矩阵反转错误
- javascript - 为什么它作为未定义的“发送”返回?
- mysql - Nodejs Mysql连接最佳实践
- sql - 有什么方法可以在 SQL Server 中使用 SIMILAR TO 运算符或任何其他运算符,如 Similar TO 运算符?
- java - 如何将libphonelib正确导入java项目?
- amazon-web-services - jest-haste-map: Haste 模块命名冲突 (AWS, RN)
- c# - AWS API Gateway Lambda 授权方请求类型没有 methodArn?
- ios - 分析显示在 AVSampleBufferDisplayLayer 中的帧颜色。图像缓冲区为零