:
还有别的线程安全的Map吗?有那就是HashTable;
?...通过源码可以看出来为什么HashTable是线程安全的,因为方法直接被Synchronized修饰了,一把大锁加上去再安全不过了,不过相对的,性能会下降,因为锁的粒度非常粗,所有的线程被串行化了
然后我们来说说...学过容器的人都知道,链表适合增加和删除概率
而数组适合查询
链表的缺陷就在于查询这里
而跳表就解决了这个缺陷,以空间换取时间,增加索引
在底层上一层一层的增加索引增加到满意为止
?...在插入索引的时候掷骰子,这个节点是不是索引完全取决于掷骰子,每一层都掷骰子,为true就添加,为false就不添加,所以在计算机学中调表也叫概率数据结构
有了索引之后如果要在70之后增加数据只要查询3次就可以...,而不用去遍历整个链表,他的查询速度已经接近红黑树了,但是实现上要比红黑树简单的多
在常用的技术中,比如redis,Lucene中都使用了跳表
那为什么ConcurrentHashMap不用跳表而采用红黑树呢