为什么setValueAt(...)
类的公共接口中有SparseArray
?我使用它而不是put(...)
显然没有得到我想到的结果。
答案 0 :(得分:0)
我来到这里试图找出同样的事情。正如Prekak Sola在评论中提到的那样,setValueAt
会映射特定索引的值,而put
会映射特定键的值。< / p>
显然,这可能会让人感到困惑,但我认为这是一个非常有用的功能,因为如果你看一下官方的SparseArray documentation,就会提到SparseArray
通常比{HashMap
慢。 1}},因为查找需要二进制搜索并添加和删除需要插入和删除数组中的条目。
所以,我想在某些情况下,如果你使用keyAt(int),size() 迭代这个容器中的项目,它会表现得更快,显然所有< strong>与索引相关的函数,例如setValueAt
,而不是使用键。