2015-05-28 136 views
0

在我的Android我使用SparseArray來存儲值。如何合併兩個SparseArrays?沒有addAll或putAll方法。只能通過第一個數組迭代並將對象放到第二個數組中?它有效嗎?或者我應該只使用HashMap?SparseArray - 如何合併兩個數組

+1

addall()也遍歷整個數組 – vincentzhou

+1

即使存在'putAll'方法,你也無法真正做得比迭代遍歷一個元素更好,因爲算法上它很可能轉化爲考慮到容器的要求幾乎是相同的東西。哈希映射可能會給你更好的性能,或者它可能不會,但是putAll的存在並不一定意味着容器可以以最快的速度傳輸任何比線性時間更快的元素(除非它是一個鏈接結構,只需更改一個指針)。 「putAll」的存在可能僅僅意味着容器可以使用它的私有數據... –

+1

...數據可以更有效地插入到批量中,但相對於同一個容器類型中的單個「puts」,這是「高效」與其他集裝箱相比,不是絕對有效的。對於這些類型的事情,最好只在性能問題上進行測量,但值得注意的是,線性遍歷元素以將元素從一個容器傳輸到另一個容器是非常正常的,只要算法複雜性高。除了鏈表之外,你通常無法做得更好。 –

回答

2

如何合併兩個SparseArrays?

先遍歷第一個SparseArray並將元素添加到第二個SparseArray

效率是否夠高?

即使HashMap還遍歷它的一個陣列用於添加到另一個。所以肯定會很有效率。