2022

阅读: 评论:0

2022

2022

你在工作中使用过那些集合?说一说ArrayList,LinkedList之间的区别

ArrayList的扩容机制,怎么扩容的,数组拷贝有听说过吗?

  • ArrayList的add方法,再添加元素前,会调用ensureCapacityInternal()更新最小需要容量minCapacity,然后调用ensureExplicitCapacity() 看是否需要扩容。
  • 根据传入的最小需要容量minCapacity来和数组的容量长度对比,如果minCapacity大于或等于数组容量,则需要进行扩容。
  • ArrayList在第一次插入元素add()时分配10(默认)个对象空间。之后扩容会按照1.5倍增长
  • 每次扩容都是通过pyOf(elementData, newCapacity) 这样的方式实现的。ArrayList的自动扩容机制底层借助于System实现System.arraycopy(0,oldsrc,0,newsrc,length);

add方法

    /*** 将指定的元素追加到此列表的末尾。 */public boolean add(E e) {//添加元素之前,先调用ensureCapacityInternal方法ensureCapacityInternal(size + 1);  // Increments modCount!!//这里看到ArrayList添加元素的实质就相当于为数组赋值elementData[size++

本文发布于:2024-01-27 21:12:06,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063611242668.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23