- 博客(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关注的人