public class ArrayMap
extends SimpleArrayMap<K, V>
implements Map<K, V>
java.lang.Object | ||
↳ | android.support.v4.util.SimpleArrayMap<K, V> | |
↳ | android.support.v4.util.ArrayMap<K, V> |
Known Direct Subclasses
ObservableArrayMap<K, V>
|
ArrayMap是一种通用的key-> value映射数据结构,与传统的HashMap
,该结构的内存效率HashMap
,该实现是平台ArrayMap
一个版本,可用于旧版本的平台。 它将映射保存在数组数据结构中 - 每个项目的哈希代码的整数数组,以及键/值对的Object数组。 这使得它可以避免为放入地图的每个条目创建额外的对象,并且还试图更积极地控制这些数组大小的增长(因为增长它们只需要复制数组中的条目,而不是重建哈希映射)。
如果您不需要这里提供的标准Java容器API(迭代器等),请考虑使用 SimpleArrayMap
。
请注意,此实现不适用于可能包含大量项目的数据结构。 它通常比传统的HashMap慢,因为查找需要二分搜索并添加和删除需要插入和删除数组中的条目。 对于容纳数百种物品的容器,性能差异不显着,小于50%。
由于此容器旨在更好地平衡内存使用,与大多数其他标准Java容器不同,它会在从其中删除项目时收缩其阵列。 目前,您无法控制这种缩小 - 如果您设置容量然后移除项目,则可能会降低容量以更好地匹配当前大小。 未来,设置容量的明确要求应该关闭这种积极的收缩行为。
Public constructors |
|
---|---|
ArrayMap() |
|
ArrayMap(int capacity) 用给定的初始容量创建一个新的ArrayMap。 |
|
ArrayMap(SimpleArrayMap map) 使用给定ArrayMap的映射创建一个新的ArrayMap。 |
Public methods |
|
---|---|
boolean |
containsAll(Collection<?> collection) 确定数组映射是否包含给定集合中的所有键。 |
Set<Entry<K, V>> |
entrySet() 返回一个 |
Set<K> |
keySet() 返回一个 |
void |
putAll(Map<? extends K, ? extends V> map) 在 地图中执行所有键/值对的 |
boolean |
removeAll(Collection<?> collection) 删除给定集合中存在的数组映射中的所有键。 |
boolean |
retainAll(Collection<?> collection) 删除数组映射中 不存在于给定集合中的所有键。 |
Collection<V> |
values() 返回 |
Inherited methods |
|
---|---|
From class android.support.v4.util.SimpleArrayMap
|
|
From class java.lang.Object
|
|
From interface java.util.Map
|
ArrayMap ()
ArrayMap (int capacity)
用给定的初始容量创建一个新的ArrayMap。
Parameters | |
---|---|
capacity |
int
|
boolean containsAll (Collection<?> collection)
确定数组映射是否包含给定集合中的所有键。
Parameters | |
---|---|
collection |
Collection : The collection whose contents are to be checked against. |
Returns | |
---|---|
boolean |
Returns true if this array map contains a key for every entry in collection, else returns false. |
Set<Entry<K, V>> entrySet ()
返回 Set
用于遍历数组映射中的所有映射并与其交互。
注意:这是访问数组内容的非常低效的方式,它需要生成一些临时对象。
注意:
the semantics of this Set are subtly different than that of aHashMap
: most important, the
Map.Entry
object returned by its iterator is a single object that exists for the entire iterator, so you can
not hold on to it after calling
Iterator.next
.
Returns | |
---|---|
Set<Entry<K, V>> |
a set view of the mappings contained in this map |
Set<K> keySet ()
返回一个 Set
用于迭代数组映射中的所有键并与其交互。
注意:这是访问数组内容的一种相当低效的方式,它需要生成许多临时对象。
Returns | |
---|---|
Set<K> |
a set view of the keys contained in this map |
void putAll (Map<? extends K, ? extends V> map)
在 地图中执行所有键/值对的 put(Object, Object)
Parameters | |
---|---|
map |
Map : The map whose contents are to be retrieved. |
boolean removeAll (Collection<?> collection)
删除给定集合中存在的数组映射中的所有键。
Parameters | |
---|---|
collection |
Collection : The collection whose contents are to be used to remove keys. |
Returns | |
---|---|
boolean |
Returns true if any keys were removed from the array map, else false. |
boolean retainAll (Collection<?> collection)
删除数组映射中 不存在于给定集合中的所有键。
Parameters | |
---|---|
collection |
Collection : The collection whose contents are to be used to determine which keys to keep. |
Returns | |
---|---|
boolean |
Returns true if any keys were removed from the array map, else false. |
Collection<V> values ()
返回一个 Collection
迭代并与数组映射中的所有值进行交互。
注意:这是访问数组内容的一种相当低效的方式,它需要生成许多临时对象。
Returns | |
---|---|
Collection<V> |
a collection view of the values contained in this map |