我遇到了麻烦。 Java 7如何处理从ArrayList加载的元素? 我试着更清楚:我从我的数据库中获取了一个ArrayList。当我得到它时,是否所有存储在其中的字节数组都加载了,或者只有当我调用它们时才动态加载它们?
答案 0 :(得分:0)
嗯,在内部,ArrayList
实际上使用array
来存储数据。
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
private static final long serialVersionUID = 8683452581122892189L;
/** The array buffer into which the elements of the ArrayList are stored.
* The capacity of the ArrayList is the length of this array buffer.
*/
private transient Object[] elementData;
是的,数据已经加载。
答案 1 :(得分:0)
列表中的所有对象都已存在于内存中。整个arraylist填充了您通过数据库检索的元素。没有动态加载arraylist这样的东西。
答案 2 :(得分:0)
我不确定您使用的数据库部分。如果你使用像hibernate这样的工具,这个arraylist是动态加载的。为了清楚你动态说,它会在你尝试访问arraylist时加载,但是即使在那里也会加载一个(所有字节都被填充)。 Arraylist内部使用数组来管理元素集合。
所以,如果你使用普通的jdbc来获取记录,你必须自己填充Arraylist。那里没有任何动态.Bottom行,因为它在里面使用数组,就像填充数组一样简单。