存储大对象时Java中的ArrayList

时间:2013-03-13 09:09:22

标签: java

我在Java中遇到了关于arraylist的采访问题,我觉得这很有意思,但不知道如何回答:

What attention should be paid when using arrayList to store large object?

我想知道我们是否应该在时间/空间复杂性方面回答这个问题?

由于

3 个答案:

答案 0 :(得分:8)

Java中的所有对象都存储为引用,容器和变量等,因此在C ++术语中,所有容器只存储指向对象的指针。在这种情况下,对于大多数(如果不是全部)用例,对象的大小应该不相关

答案 1 :(得分:0)

内部ArrayList使用Object []。一旦达到最大容量,它就会创建一个大小为原始数据1.5倍的新数组,并将从旧数组复制到新数组。可能是面试官想要查看这个带有大型物品的副本的费用

ArrayList: how does the size increase?

检查ensureCapacity() - http://www.docjar.com/html/api/java/util/ArrayList.java.html

答案 2 :(得分:0)

ArrayList支持可根据需要增长的动态数组。 在Java中,数组具有固定长度,这意味着在创建数组之后,它们不能增长或缩小,这意味着您必须事先知道数组将包含多少元素。但是,有时,你可能不知道大小,直到运行时,在这种情况下,我们使用ArrayList。 ArrayList可以动态增加或减少大小。使用初始大小创建数组列表。超过此尺寸时,将自动放大该集合。删除对象后,阵列可能会缩小。 另外,请注意Arraylist只存储对象。