自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HashMap的存储原理

由前面可知,HashMap是基于哈希表实现的,它的数据结构主要由数组链表和红黑树组成。(1)数组:①HashMap 的主体是一个数组。②元素数量是固定的,由HashMap的容量决定。默认情况下,HashMap的初始容量是 16。2. 链表和红黑树:①HashMap也使用链表或者红黑树来存储键值对。②当链表长度超过阈值(默认为 8)时,链表会被转换成红黑树,以提高查找、插入和删除操作的效率。③这种数据结构的选择(链表还是红黑树)取决于键值对数量的多少和性能的需求。

2024-07-21 18:09:44 574

原创 ArrayList和LinkedList的比较

首次添加元素时,calculateCapacity方法返回的值为10(因为DEFAULT_CAPACITY的值为10),然后再回到ensureExplicitCapacity方法中,进入到if判断,符合条件,进入到grow方法中。1.随机访问性能:如果需要频繁通过索引访问列表中的元素,ArrayList由于其基于数组的实现,提供了常数时间复杂度的访问性能(O(1)),而LinkedList在进行随机访问时需要从头节点或尾节点开始遍历,时间复杂度为O(n)。LinkedList的插入和删除操作只需。

2024-07-14 17:09:38 666

原创 StringBuilder与StringBuffer的底层存储原理

StringBuilder和StringBuffer的扩容策略都是通过动态调整字符数组的大小来实现的,保证了字符串操作的高效性和可扩展性。理解它们的扩容机制有助于我们编写出性能更优的字符串处理代码,在应对不同需求时选择合适的类进行使用。这种设计保证了在大部分情况下,字符串操作的性能是高效的,因为不需要频繁地重新分配和复制数组,而只在必要时进行扩容操作。

2024-07-07 17:34:38 984

空空如也

空空如也

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

TA关注的人

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