集合底层原理研究
乐观男孩
乐观开朗
展开
-
java jdk1.7版本的ArrayList原理解析
上一篇文章中我们了解了LinkedList集合的底层实现原理,这一篇将研究下ArrayList的实现原理。 同样的通过源码解释,我们可以得到以下信息: (1)、ArrayList是一个长度可变的数组集合,创建ArrayList实例时没有指定长度,当添加数据,而且数据个数小于10时,那么默认将会创建一个容量为10的数组存储数据;当数组不够长时,将会默认增长原来容量的一半。如果要自定义ArrayLi原创 2016-08-23 15:57:06 · 1482 阅读 · 0 评论 -
java jdk1.7版本的LinkedList底层原理解析
LinkedList集合与ArrayList即可的区别是LinkedList存储的元素是有序的,底层的实现原理也不一样。LinkedList底层是通过一个双向链表实现(在jdk1.6及以前,是一个循环的双向链表),而ArrayList是通过数组实现的。这里暂且不讨论ArrayList的相关知识,先研究下LinkedList的实现原理,而且是以jdk1.7为基础的。在jdk1.6及之前的版本,Link原创 2016-08-22 17:06:25 · 4095 阅读 · 1 评论 -
java jdk1.7版本的HashMap原理解析
HashMap是一个key-value集合,每一个key对应一个值,key不可以重复,对相同的key进行设值将会把原来的值进行覆盖。HashMap的底层实现原理是利用一个数组和多个单向链表实现的一个数据集合,数组的每个数据项就是一个单向链表(实际上是通过一个个Entry实例连接起来,Entry有一个next变量指向下一个元素),数组里的每个存放数据的位置我们称为桶。当要put一个键值对进去集合时,首原创 2016-08-26 17:50:48 · 1128 阅读 · 0 评论