gpt4 book ai didi

java - 为什么我不能将 SparseArray 转换为数组?

转载 作者:行者123 更新时间:2023-11-29 06:57:26 25 4
gpt4 key购买 nike

我最近开始使用 Android SparseArray 代替 ArrayList 来处理少量项目。我想知道为什么它不像普通 ArrayList 那样包含 toArray() 方法?它包含一个用于值的私有(private)对象数组,但无法返回它们。在我看来,这将是一种有用的方法,因为 ArrayList 到数组的转换在 Android 中很常见。我假设由于散列的工作方式,它会返回一个带有空槽的数组?

我的第二个问题是,将 SparseArray 转换为普通对象数组的最有效方法是什么?

最佳答案

要回答你的问题的标题,没有方法,因为 SparseArray 不是数组,它实际上是 HashMap 的优化,将任意整数绑定(bind)到任意值。优化在于它不使用 HashMap 会使用的装箱/拆箱。

然后是第二部分,你应该如何将它转换为数组,我建议使用 size() 和 keyAt(index) 确定最大的数组索引,然后分配一个适当的数组大小,最后使用具有合理默认值的 get(index, default) 方法复制所有值。

关于java - 为什么我不能将 SparseArray 转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31837901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com