
jdk集合
文章平均质量分 86
yimuss
合抱之木生于毫末,九层之台起于累土,千里之行始于足下
展开
-
HashMap源代码详解
HashMap是键值对的集合,其中键不重复并且可以为空,值也可以为空。HaspMap的存取效率非常高,可以在O(1)时间内实现存取操作。HaspMap的实现是线程非安全的,所以在多线程环境下会有并发问题。原创 2017-07-16 09:45:42 · 1215 阅读 · 0 评论 -
Map接口和AbstractMap抽象类详解
为了更好的理解JDK的哈希表实现,首先研究Map接口和AbstractMap抽象类,打好基础很重要~原创 2017-07-09 19:43:40 · 1018 阅读 · 0 评论 -
LinkedHashMap源码详解
HashMap查找效率很高,但是也有一个缺点,即遍历HashMap是无序的。LinkedHashMap顾名思义,是链表和哈希表的结合,链表具有天然的有序性,这里的有序不是按照节点大小排序,而是按照节点的插入顺序排序或者节点的访问顺序排序原创 2017-08-10 22:21:24 · 840 阅读 · 1 评论 -
LinkedList源码详解
链表是我们接触最多的数组结构之一,Java的LinkedList实现了链表这一数据结构,并且实现的是双向链表,LinkedList还提供了双端队列的操作。LinkedList可以存储任何元素,包括null。和ArrayList不同的是,LinkedList是一个”顺序存取“的List,而ArrayList是一个”随机存取“的List。原创 2017-09-23 16:32:32 · 541 阅读 · 0 评论 -
CopyOnWriteArrayList源码详解
CopyOnWriteArrayList是线程安全集合,它内部通过一个数组存储元素。通过名字可以看出,这是一个“写时复制”的List,每次要修改该List的时候,都会new一个新的数组,copy原来数组元素到该新的数组,并在该新的数组上修改,修改完后,更新原有数组引用到该新的数组。原创 2017-09-26 20:47:38 · 532 阅读 · 0 评论 -
ArrayList源码解析
ArrayList用数组作为内部元素的存储,该数组的大小就是ArrayList的容量,它内部还维护了一个变量size保存当前元素的个数。原创 2017-09-21 22:19:33 · 499 阅读 · 0 评论 -
ConcurrentHashMap源码详解
ConcurrentHashMap是线程安全的哈希表,不同于HashTable,后者在方法上增加synchronized关键字,利用对象同步锁实现线程之间的同步。显然,HashTable实现线程安全的方式太“重”,并发度高的情况下,很多线程争用同一把锁,吞吐量较低。ConcurrentHashMap通过锁分段技术,只有在同一个段内,才会存在锁竞争,提高了并发度。原创 2017-10-12 20:35:27 · 1870 阅读 · 1 评论 -
IdentityHashMap源码详解
IdentityHashMap是一致性哈希表,使用引用相等,而不是equals方法来比较两个对象的相等性。因此,IdentityHashMap中,如果存在两个键key1和key2,当且仅当key1==key2时,两个键相等。原创 2017-11-20 22:33:11 · 1454 阅读 · 0 评论