包含Points的Java arrayList的最大大小

时间:2014-08-29 11:25:28

标签: java arraylist

ArrayList Points可存储的元素的最大数量是多少?

换句话说,鉴于此代码:

ArrayList<Point> x = new ArrayList<>();
for (int i = 0; i < maxElements; i++) {
    x.add(new Point(0, 0));
}

maxElements允许的最大值(给定足够的堆空间),x.get(0)是正确的值并且可以访问?

4 个答案:

答案 0 :(得分:2)

Integer.MAX_VALUE - 8

因为这是ArrayList

的最大尺寸

来源:Line 191

答案 1 :(得分:0)

maxElements可能是列表的限制。如果您需要x.size() > 0,可以使用x.get(0)检查。

ArrayList<Points> x = new ArrayList<>();
for (int i = 0; i < maxElements; i++) {
    x.add(new Point(0, 0));
}
Points p;
if (x.size() > 0)
  p = x.get(0);

答案 2 :(得分:0)

What is the maximum number of elements an ArrayList of Points can store?

ArrayList和Points是对象并存储在堆内存中。如果堆内存可以支持,它最多可以存储Integer.MAX_VALUE(2^31-1),但您可能会先获得java.lang.OutOfMemoryError这一点。

maxElements的值是什么,x.get(0)是正确的值并且可以访问?

maxElements可以有任何大于等于1的值(因此它至少包含1个元素)

答案 3 :(得分:0)

理论上是2 ^ 31,但实际上它取决于你的记忆力。