hashMap:链表和数组的结合体,数组里包含链表.
Entry[] entryArray = {new Entry(key,value,next) new Entry(key,value,next) ,
Entry[] entryArray = {new Entry(key,value,next) new Entry(key,value,next) ,
new Entry(key,value,next) new Entry(key,value,next) new Entry(key,value,next),
new Entry(key,value,next) ,
new Entry(key,value,next) new Entry(key,value,next) new Entry(key,value,next) new Entry(key,value,next) new Entry(key,value,next) ,
new Entry(key,value,next) new Entry(key,value,next)
}
ConcurrentHashmap:
线程安全的Hashmap,原理是把map拆分成n个segment(hashtable),线程安全,效率提升N倍.
遍历速度 | 插入删除速度 | 随机访问速度 | 备注 | |
Set | 快 | 快 | 慢 | 比list多占一个指针的存储空间 |
List | 快 | 慢 | 快 | 必须之前知道数组元素个数,因为申请内存是连续长度明确的 |
HashMap | 慢 | 快 | 快 | 适合海量数据,o(1)的随机访问速度,不是可遍历 |
变体Set | 快 | 快 | 快 | set的基础上多占一个List的控件,不过各种性能都好 |
变体List | 快 | 插入快不能删除 | 快 | 各种性能都好就是不能有删除操作 |