源码
一个善良的码农
做一个快乐的码农!
展开
-
ArrayList源码分析
环境:JDK 8版本ArrayList使用的存储的数据结构/** * The array buffer into which the elements of the ArrayList are stored. * The capacity of the ArrayList is the length of this array buffer. Any * empty ...原创 2018-05-28 22:27:54 · 206 阅读 · 0 评论 -
ArrayList有容量上限吗?
今天面试遇到这个问题:首先先new一个List<Integer> list =new ArrayList<>();调用无参构造函数默认初始容量为10,可以看到list.size()其底层如下:/** * Returns the number of elements in this list. * * @return the number of ...原创 2018-06-23 20:40:23 · 22257 阅读 · 2 评论 -
为什么ArrayList的最大数组大小是Integer.MAX_VALUE - 8?
https://stackoverflow.com/questions/35756277/why-the-maximum-array-size-of-arraylist-is-integer-max-value-8原创 2018-06-23 21:14:54 · 8081 阅读 · 13 评论 -
常用数据结构——Collection
环境:JDK1.8CollectionList:有序可重复ArrayList: 1、底层是数组; 2、默认容量为10; 3、最大容量为(Integer.MAX_VALUE-8); 4、扩容时新容量为旧容量的1.5倍,即新容量=旧容量*1.5; 5、非线程安全。Set:无序不可重复,只能存在一个nullHashSet 1、底层是HashMap; 2、具体API可参照...原创 2018-07-02 22:13:10 · 480 阅读 · 0 评论 -
常用数据结构——Map
MapHashMap: 1、底层为数组+链表(当容量达到8时变为红黑树) 2、非线程安全; 3、key和value均可为null; 4、初始容量为16; 5、最大容量为MAXIMUM_CAPACITY = 1 &amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;lt; 30=2^30 6、负载因子为0.75,意思是比如我初始容量为16,那么当键值对超过16*0.75=12时就会进行扩容,新容量=旧容量*2原创 2018-07-03 20:48:12 · 15158 阅读 · 1 评论