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
}
}
查看其它两个剩余回答