Android 何时应使用SparseArray setValueAt()?

Android 何时应使用SparseArray setValueAt()?,android,Android,为什么setValueAt(…)在SparseArray类的公共接口中?我用它代替了put(…)显然没有得到我想要的结果。我来这里是想弄明白同样的事情。正如Prekak Sola在评论中提到的,setValueAt将值映射到特定的索引上,而put将值映射到特定的键上 显然,这可能会让人困惑,但我认为这是一个非常有用的功能,因为如果你看一下官方,就会发现SparseArray通常比HashMap慢,因为查找需要二进制搜索,添加和删除需要在数组中插入和删除条目 因此,我想在某些情况下,如果您使用所有

为什么
setValueAt(…)
SparseArray
类的公共接口中?我用它代替了
put(…)
显然没有得到我想要的结果。

我来这里是想弄明白同样的事情。正如Prekak Sola在评论中提到的,
setValueAt
将值映射到特定的索引上,而
put
将值映射到特定的键上

显然,这可能会让人困惑,但我认为这是一个非常有用的功能,因为如果你看一下官方,就会发现
SparseArray
通常比
HashMap
慢,因为查找需要二进制搜索,添加和删除需要在数组中插入和删除条目


因此,我想在某些情况下,如果您使用所有索引相关的函数(例如
setValueAt
)而不是使用键来迭代此容器中的项目,它的执行速度会快得多。

您的期望和现实之间有什么区别?我认为应该是put()没有
put()
用提供的键映射值,其中as
setValueAt()
用提供的索引映射值。是的。。我明白了,但什么时候有人会想直接使用索引?可能是第一位,也可能是最后一位。虽然没关系,但还是。