一.摘要
ArrayMap是一个生成键值对的数据结构,比起传统的HashMap,ArrayMap更加高效。ArrayMap使用数组的数据结构保存映射关系-每个选项是一个散列数组和一个键值对的对象数组。使用ArrayMap避免创建多余的对象空间,同时很好控制数组长度的增长。ArrayMap位于android.utils包
该实现类的作用并未指定很长的数据结构,比起传统的HashMap更短,它使用一个二分查找添加、删除ArrayMap中的数据,更好平衡内存的使用。
二.ArrayMap方法解析
ArrayMap是接口Map的实现类,所以重写了Map接口中所有的方法,关于Map方法的使用可以参考《Map接口集合方法解析》。这里展示ArrayMap增加的方法,然后总结这些方法使用技巧,这是赵林IT分析源码的主要原因。
- ArrayMap map=new ArrayMap();
- map.put("id", new Integer(123456789));
- map.put("token_id", new Integer(12345));
小知识:接口声明对象,实现类创建对象,当前声明的对象只能调用接口方法;实现类声明,实现类创建对象可以调用实现类的所有方法和属性
1.containsAll(Collection collection),当前集合是否包含给出的collection的所有键,返回true
- Collection collection=new ArrayMap<>();
- collection.add("id");
- collection.add("token_id");
- boolean isContained=arrayMap.containsAll(collection);
2.ensureCapacity(int minimumCapacity),指定集合的最少长度
- arrayMap.ensureCapacity(1024);
3.indexOfKey(Object key),返回当前键对应集合的索引
- arrayMap.indexOfKey("id");
4.removeAll(Collection collection),删除当前Collection存在的数组集合的键
- boolean isRemoveAll=arrayMap.removeAll(collection);
5.removeAt(int index),删除指定索引的集合键值对
- boolean isRemoveAll=arrayMap.removeAll(collection);
6.retainAll(Collection collection),删除当前Collection不存在的数组集合的键,注意区别removeAll()
- boolean isRetain=arrayMap.retainAll(collection);
7.setValueAt(int index,Object value),更改指定索引的集合数据
- arrayMap.setValueAt(1,new Integer(12321));
8.valueAt(int index),获取指定索引的值
- arrayMap.valueAt(1);
你可能感兴趣的文章
转载请注明出处: https://www.teachcourse.cn/1844.html ,谢谢支持!