2015-05-28 113 views
0

在我的Android我使用SparseArray来存储值。如何合并两个SparseArrays?没有addAll或putAll方法。只能通过第一个数组迭代并将对象放到第二个数组中?它有效吗?或者我应该只使用HashMap?SparseArray - 如何合并两个数组

+1

addall()也遍历整个数组 – vincentzhou

+1

即使存在'putAll'方法,你也无法真正做得比迭代遍历一个元素更好,因为算法上它很可能转化为考虑到容器的要求几乎是相同的东西。哈希映射可能会给你更好的性能,或者它可能不会,但是putAll的存在并不一定意味着容器可以以最快的速度传输任何比线性时间更快的元素(除非它是一个链接结构,只需更改一个指针)。 “putAll”的存在可能仅仅意味着容器可以使用它的私有数据... –

+1

...数据可以更有效地插入到批量中,但相对于同一个容器类型中的单个“puts”,这是“高效”与其他集装箱相比,不是绝对有效的。对于这些类型的事情,最好只在性能问题上进行测量,但值得注意的是,线性遍历元素以将元素从一个容器传输到另一个容器是非常正常的,只要算法复杂性高。除了链表之外,你通常无法做得更好。 –

回答

2

如何合并两个SparseArrays?

先遍历第一个SparseArray并将元素添加到第二个SparseArray

效率是否够高?

即使HashMap还遍历它的一个阵列用于添加到另一个。所以肯定会很有效率。