gpt4 book ai didi

list - ArrayList 的最大容量是多少?

转载 作者:行者123 更新时间:2023-12-03 21:36:47 26 4
gpt4 key购买 nike

我知道一个ArrayList的初始容量是10,当超过这个限制时,会创建一个新的ArrayList,容量为(oldcapacity * 3/2) + 1,其中的元素被复制过来。

但是 ArrayList 的最大容量是多少?

我在一次采访中被问到这个问题。面试官对默认初始容量不感兴趣,想知道ArrayList的最大容量。

最佳答案

查看源码:

public ArrayList(int initialCapacity) {
if (initialCapacity > 0) {
this.elementData = new Object[initialCapacity];
} else if (initialCapacity == 0) {
this.elementData = EMPTY_ELEMENTDATA;
} else {
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
}
}

你会在这里看到相关的部分:

this.elementData = new Object[initialCapacity];

所以数组列表最多可以容纳一个数组可以容纳的元素数。

下一个问题可能会出现:但是,有多少元素可以容纳一个数组?

答案是:这取决于你编写代码的虚拟机:

在 JDK8 中:

/**
* The maximum size of array to allocate.
* Some VMs reserve some header words in an array.
* Attempts to allocate larger arrays may result in
* OutOfMemoryError: Requested array size exceeds VM limit
*/
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

在哪里

 /**
* A constant holding the maximum value an {@code int} can
* have, 2<sup>31</sup>-1.
*/
@Native public static final int MAX_VALUE = 0x7fffffff;

关于list - ArrayList 的最大容量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43834195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com