ArrayList集合中怎么插入元素的

更新时间:2023-06-22 00:28:57 阅读: 评论:0

ArrayList集合中怎么插⼊元素的
写⼀个测试⽅法,创建⼀个集合,看看到底是怎么执⾏插⼊操作的。
public static void test1(){
//创建⼀个集合
List<Integer> list =  new ArrayList<Integer>();我不再什么作文
音乐素养list.add(1);
list.add(7);
list.add(5);
入党函调证明list.add(8);
System.out.println(list);
}
懒人记单词
控制台输出:[1, 7, 5, 8]
ArrayList 提供了⼀个add()⽅法,当我们创建了⼀个集合对象,直接调⽤add()⽅法就可以插⼊指定类型的元素,但是add()⽅法到底是怎么向集合中插⼊元素的呢?下⾯我们来分析⼀下。
微卷中长发
当执⾏插⼊操作的时候,⾸先 ensureCapacityInternal(size + 1) ,elementData[size] = e; size++;,这⾥的size是ArrayList中定义的表⽰集合⼤⼩的成员变量。
出阁宴主持词
下边我们看add 调⽤的ensureCapacityInternal⽅法
elementData,EMPTY_ELEMENTDATA,DEFAULT_CAPACITY都是什么意思
也就是说当我们创建⼀个ArrayList集合的时候,默认会给我们分配⼀个容量为10的数组,⾄于怎么扩容,我们再看 grow⽅法
注意:这⾥传过来的minCapcatiy的值是size+1,能够实现grow⽅法调⽤就肯定是(size+1)>elementData.length的情况,所以size就是初始最⼤容量或上⼀次扩容后达到的最⼤容量,所以才会进⾏扩容。
newCapacity=oldCapacity+(oldCapacity>>1),这⾥就是扩容⼤⼩确定的地⽅,相当于新的最⼤容量是 size+1+size/2 相当于原来的1.5倍然后加1。
我们看到调⽤了Arrays⼯具类的 copyOf⽅法。
最后我们看⼀下System.arraycopy()⽅法 ,会发现和remove()删除集合中的元素⽤的同⼀个⽅法,传送门
ArrayList 底层是数组的形式,所以⽀持重复元素,如果没有指定⼤⼩,默认容量为10,当超过的默认容量的时候,会进⾏扩容,按照原来容量的1.5倍加1进⾏。当存⼊的集合数量⼀致增加时,会⼀直进⾏扩容操作,所以如果预先知道需要的集合的⼤⼩,可以直接创建⼀个指定⼤⼩的ArrayList集合,可以避免重复数组copy的扩容操作。
啜泣的近义词>长毛怪

本文发布于:2023-06-22 00:28:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1049063.html

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

标签:集合   容量   默认   元素   数组   扩容
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图