自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 JAVA集合篇之HashMap底层源码(JDK8)

3.添加的元素会根据key计算出hash来决定存放到数组的位置,当hash计算相同时,会将元素存放到相同位置,此时会比较两个key是否相同(== 或 equals),如果相同认为添加的是相同元素,会替换原来的旧值为新添加的值,如果不同认为是不同元素,会添加到链表的尾部,当添加的链表大于8,并且数组的容量超过64时会进行树化,否则会先扩容,再添加元素。调用构造方法创建对象时,会执行以下方法,默认加载因子为0.75。HashMap有四个构造方法。

2024-05-09 20:12:23 395 1

原创 JAVA集合篇之LinkedHashSet底层源码(JDK8)

主要是这里有点区别,afterNodeAccess(e) 后面补足,如果hash位置计算相同,元素比较是不同元素时,添加到链表尾部,即 p.next = newNode(hash, key, value, null)// 主要负责在节点插入到哈希表结构后,进一步调整其在维护插入顺序的链表中的位置,确保链表能够准确反映元素的插入顺序,后面详细作用补足。到此,添加的底层机制大概如上所述,底层模板走的也是HashMap那一套,具体有些区别在于子类重写了其中的一些方法。注意创建结点的时候走的是子类的方法。

2024-04-18 23:02:10 1175

原创 JAVA集合篇之HashSet底层源码(JDK8)

/至此,添加重复元素的逻辑处理结束,这里再分析一下再数组表中已经存在元素的时候的扩容机制resize(),分析见蓝色注释。// 将e指向p的下一个结点(p.next),判断p的下一个结点是否为null。else { // 计算出来的位置相同,但判断不是相同对象,也不是树结点,会进入该分支。//因此,当添加的元素已经有8个,继续添加的时候满足该if条件。// 因此,还要数组大小

2024-04-17 15:40:57 1230

原创 JAVA集合篇之LinkedList底层源码(JDK8)

至此,形成双向列表,linkedList中的first指向第一个节点(存放元素1的结点),last指向最后一个结点(存放元素2的结点)。//该结点为LinkedList的内部类,其中item指向要存放的元素,next,prev为指向后结点和前结点的结点引用,添加的元素是保存在这个Node对象中。(4)此时,(4)步骤不符合,执行(5),将前结点的next指向新结点newNode。//新创建的结点对象newNode ,pre指向l = null,next=null。//last指向newNode。

2024-04-14 12:45:46 1068

原创 JAVA集合篇之Vector底层源码(JDK8)

/此后,添加的逻辑相似,当添加的元素又大于当前容量时,又继续扩容为旧容量的2倍,以此类推。//此时minCapacity = 11,elementData.length = 10,会进入if判断,进行扩容,即调用grow(minCapacity)方法进行扩容。//此时,minCapacity = 1,elementData.length = 10,不会进入if判断,不会扩容。//记录旧集合的元素个数 10。//此时,capacityIncrement 默认为0,在调用初始构造方法的时候,默认赋值为0。

2024-04-13 17:13:23 602

原创 JAVA集合篇之ArrayList底层源码(JDK8)

/直到添加第11个元素,即添加的数量超过当前集合的容量时,该if判断条件成立,进入grow(minCapacity)方法,此时minCapacity = 11。//第一次调用的时候,minCapacity = size + 1 (size第一次添加时为0,因此minCapacity = 0 + 1 = 1)if (newCapacity - minCapacity < 0) //第一次的时候集合元素为空,newCapacity = 0,//newCapacity = 10 第一次扩容,容量为10。

2024-04-11 22:17:08 794 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除