ArrayList
和ArrayMap
之间的主要区别是什么?对于非线程应用程序哪一个更有效,更快?
文档说ArrayMap
是一个通用键 - >值映射数据结构,那么ArrayMap
和HashMap
之间的差异是否相同?
答案 0 :(得分:1)
ArrayMap
将其映射保存在数组数据结构中 - 每个项的哈希码的整数数组,以及 key -> value pairs
的Object数组。
ArrayList
是列表。 List接口的可调整大小的数组实现。实现所有可选列表操作,并允许所有元素,包括null。
<强> FYI 强>
ArrayMap is a generic key->value
映射数据结构,旨在提高内存效率 traditional HashMap
。
请注意,ArrayMap实现并不适合 可能包含大量项目的数据结构。它是 通常比传统的HashMap慢,因为查找需要一个 二进制搜索和添加和删除需要插入和删除 数组中的条目。对于容纳数百件物品的容器, 性能差异不显着,小于50%。
答案 1 :(得分:1)
FROM DOCS
ArrayList
类扩展AbstractList
并实现List接口。 ArrayList
支持可根据需要增长的动态数组。使用初始大小创建数组列表。超过此尺寸时,将自动放大该集合。删除对象后,阵列可能会缩小。
List接口的可调整大小的数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组的大小。 (这个类大致相当于Vector,除了它是不同步的。)
size,isEmpty,get,set,iterator和listIterator操作以恒定时间运行。添加操作以分摊的常量时间运行,即添加n个元素需要O(n)时间。所有其他操作都以线性时间运行(粗略地说)。与LinkedList实现相比,常数因子较低。