2016-05-12 71 views
1

爲什麼setValueAt(...)SparseArray類的公共接口?我使用它而不是put(...)顯然沒有得到我想到的結果。當你應該使用SparseArray setValueAt()?

+0

你的期望和現實有什麼區別? –

+0

我認爲這應該是put()的做法 –

+0

編號'put()'將值與提供的**鍵**映射,其中'setValueAt()'將值與提供的**索引* *。 –

回答

0

我來這裏試圖弄清楚同樣的事情。正如Prekak Sola在評論中提到的,setValueAt映射了特定索引上的值,而put映射了特定上的值。

很明顯,就會變得更加複雜,但我認爲這是一個非常有用的功能,因爲如果你看看官方SparseArray documentation,它提到SparseArray通常比HashMap慢,因爲查找需要二進制搜索並添加並刪除要求插入和刪除數組中的條目。

所以,我想,在某些情況下,它會執行得更快,如果你迭代在這個容器中的物品使用keyAt(int)size(),顯然所有指數相關功能,如setValueAt,而不是使用密鑰。

相關問題