集合源码
风过无痕2018
这个作者很懒,什么都没留下…
展开
-
Java集合原理
Java集合原理ArrayList的底层操作机制源码分析Vector的底层源码\扩容机制LinkedList源码解析HashSet\HashMap的底层源码LinkedHashSet的底层机制TreeSet源码解读TreeMap源码解读原创 2021-12-31 18:30:30 · 525 阅读 · 0 评论 -
TreeMap源码解读
TreeMap源码解读使用默认的构造器[ new TreeMap(); ],创建TreeMap, 是无序的(也没有排序)使用有参构造器 [new TreeMap(Comparator<? super K> comparator) ], 可以排序TreeMap的继承关系图解读源码:构造器. 把传入的实现了 Comparator接口的匿名内部类(对象),传给给TreeMap的comparator public TreeMap(Comparator<? super K原创 2021-12-31 16:17:49 · 1319 阅读 · 0 评论 -
TreeSet源码解读
TreeSet源码解读特点: 可以排序解读当我们使用无参构造器[new TreeSet();] 创建TreeSet时,仍然是无序的如果希望添加的元素,按照字符串大小来排序2.1.使用TreeSet 提供的一个构造器[ new TreeSet(new Comparator()],可以传入一个比较器(匿名内部类) 并指定排序规则看看TreeMap(Comparator<? super K> comparator)的源码构造器把传入的比较器对象,赋给 TreeSet的底层的 Tre原创 2021-12-31 15:47:30 · 252 阅读 · 0 评论 -
LinkedHashSet的底层机制
LinkedHashSet的底层机制LinkedHashSet是HashSet的子类LinkedHashSet底层是一个 LinkedHashMap,底层维护了一个数组+双向链表LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护元素的次序, 这使得元素看起来是以插入顺序保存的。(有序)LinkedHashSet 不允许添重复元素1.在LinkedHastSet中维护了一个hash表和双向链表(LinkedHashSet有head 和tail )2.原创 2021-12-31 15:00:56 · 2868 阅读 · 0 评论 -
HashSet\HashMap的底层源码
HashSet源码HashSet的底层是HashMap,HashMap的底层是数组+链表+红黑树- HashSet添加元素底层是如何实现的?1、添加一个元素时,先得到hash值 -会转成->索引值2、找到存储数据表table,看这个索引位置是否已经存放的有元素3、如果没有,直接加入4、如果有,调用equals() 比较,如果相同,就放弃添加,如果不相同,则添加到最后5、在Java8中,如果一条链表的元素个数到达TREEIFY_THRESHOLD(默认是8),并且table(数组)的原创 2021-12-30 19:37:53 · 319 阅读 · 0 评论 -
LinkedList源码解析
LinkedList源码解析add()方法remove() 方法原创 2021-12-30 14:03:49 · 257 阅读 · 0 评论 -
Vector的底层源码\扩容机制
Vector的底层源码\扩容机制如果是无参, 默认是10, 满后按2倍扩容。如果指定大小,直接按两倍扩容。解读源码new Vector() 底层 //1. new Vector() 底层 //如果调用无参构造器 public Vector() { this(10); } //补充:如果是有参构造 Vector vector = new Vector(8); //走的方法: public Vector原创 2021-12-30 11:22:56 · 1001 阅读 · 0 评论 -
ArrayList 的底层操作机制源码分析
ArrayList 的底层操作机制源码分析扩容机制:1)ArrayList中维护了一个0bject类型的数组elementData. transient Object[]elementData; //transient表示瞬间,短暂的,表示该属性不会被序列化2)当创建ArrayList对象时,如果使用的是无参构造器,则初始elementData容量为0,第1次添加,则扩容elementData为10,如需要再次扩容,则扩容elementData为1.5倍。3)如果使用的是指定大小的构造器,则初原创 2021-12-30 01:21:07 · 324 阅读 · 0 评论