首页 > 解决方案 > 在 Kotlin 中覆盖 ArrayList 中的 Float 项会导致分配吗?

问题描述

我在 ValueAnimator 调用中重新计算数组值,所以我只需将值设置为

mValues[i] = newValue

Profiler 告诉我每次都会在这里创建一个 Float 对象。此处建议 Java 使用简单的“浮点”类型,但在 Kotlin 中,这不是一个选项。

在数组更新期间创建新对象真的是这样吗?

标签: androidkotlin

解决方案


你的标题说ArrayList,问题本身说了两次“数组”。那些不一样!如果您可以更改为使用原始数组(float[]在 Java 和FloatArrayKotlin 中),则不会进行分配。

如果您确实需要一个列表(例如,因为您想改变大小),请考虑使用原始集合库:其中有很多用于 Java,所有这些都应该易于从 Kotlin 中使用。


推荐阅读