全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  千锋问问

arraylist集合的扩容原理

问题描述:arraylist集合的扩容原理

推荐答案 本回答由问问达人推荐

  在Java中,ArrayList的扩容原理是当ArrayList的容量(capacity)已满时,创建一个新的容量更大的数组,并将原来数组中的所有元素复制到新数组中,最后将新数组与原有数组关联。

  ArrayList的扩容是通过以下步骤完成的:

  1.检查ArrayList的容量是否已满。

  2.如果容量未满,则直接返回。

  3.如果容量已满,则创建一个新的数组,其大小为原来的两倍。

  4.将原来数组中的所有元素复制到新数组中。

  5.将新数组与原有数组关联。

  ArrayList的扩容因子(expansion factor)是指新数组的大小是原来数组大小的多少倍。默认情况下,ArrayList的扩容因子为0.5,即新数组的大小是原来数组大小的0.5倍。

  以下是一个示例代码,演示了ArrayList的扩容过程:

import java.util.ArrayList;  

public class ArrayListExpand {
public static void main(String[] args) {
// 创建一个ArrayList对象,初始容量为10,扩容因子为0.5
ArrayList<String> list = new ArrayList<>(10, 0.5);

// 向ArrayList中添加元素
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");

// 输出ArrayList中的元素
System.out.println(list); // 输出:[A, B, C, D, E]

// 扩容前:capacity为10,size为5
System.out.println("扩容前:capacity=" + list.capacity() + ", size=" + list.size()); // 输出:扩容前:capacity=10, size=5

// 扩容后:capacity变为20,size不变
list.ensureCapacity(20);
System.out.println("扩容后:capacity=" + list.capacity() + ", size=" + list.size()); // 输出:扩容后:capacity=20, size=5
}
}

 

查看其它两个剩余回答
在线咨询 免费试学 教程领取