一、实体结构
int[] mKeys
Object[] mValues
int mSize = 10
主要结构是array 与arrayList 使用相同 key 其实就是索引值
put方法
-
目标索引的确认
首先是通过ContainerHelpers.binarySearch(mKeys,mSize,key)来进行计算
入参是1:mKeys[] 数组 mSize 当前已有元素数量 key 当前输入的key
put(1,"1")
put(10,"10")
put(100,"100")
put(2,"2")
- 插入新的元素
通过上一步 binarySearch获取的 i 值 在添加新元素 时通常通过取反获取一个负数
put(1,"1") 时 i = ~0
put(10,"10") 时 i = ~1
put(100,"100") 时 i = ~2
put(2,"2") 时 i = ~1
在下面执行元素插入操作时 再次对 i取反 获取目标index
put(1,"1") 时 i = 0
put(10,"10") 时 i = 1
put(100,"100") 时 i = 2
put(2,"2") 时 i = 1
put(1,"1") mSize = 0 i= 0
put(10,"10") mSize = 1 i= 1
put(100,"100") mSize = 2 i= 2
put(2,"2") mSize = 3 i=1