android - 在 Kotlin 中覆盖 ArrayList 中的 Float 项会导致分配吗?
问题描述
我在 ValueAnimator 调用中重新计算数组值,所以我只需将值设置为
mValues[i] = newValue
Profiler 告诉我每次都会在这里创建一个 Float 对象。此处建议 Java 使用简单的“浮点”类型,但在 Kotlin 中,这不是一个选项。
在数组更新期间创建新对象真的是这样吗?
解决方案
你的标题说ArrayList
,问题本身说了两次“数组”。那些不一样!如果您可以更改为使用原始数组(float[]
在 Java 和FloatArray
Kotlin 中),则不会进行分配。
如果您确实需要一个列表(例如,因为您想改变大小),请考虑使用原始集合库:其中有很多用于 Java,所有这些都应该易于从 Kotlin 中使用。
推荐阅读
- php - Laravel 二维码在发送电子邮件时不起作用
- git - git子模块跟踪标签
- flutter - Flutter - 如何将带有按钮的芯片组列表水平包装在一起
- python-3.x - python3计算字典中每个键的值
- java - Ubuntu 上的 Desktop.getDesktop().open(file) 无法正常工作
- ansible - aws 事件 put-targets CLI 结果为 Expecting ',' 分隔符:第 1 行第 118 列(字符 117)"
- sql-server - 我需要帮助来设置 ColdFusion 以使用 MS SQL Always Encrypted 列
- c - 在 C 函数调用中返回一个空项
- powershell - 重定向到 powershell 核心中的文件时,写入错误会给出奇怪的字符
- python - 使用下面定义的名为 c 的列表列表。创建一个新列表,其中包含列表中出现的 5 到 45 之间的所有数字