加载arraylist元素的政策

时间:2013-06-18 07:42:16

标签: java arraylist

我遇到了麻烦。 Java 7如何处理从ArrayList加载的元素? 我试着更清楚:我从我的数据库中获取了一个ArrayList。当我得到它时,是否所有存储在其中的字节数组都加载了,或者只有当我调用它们时才动态加载它们?

3 个答案:

答案 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行,因为它在里面使用数组,就像填充数组一样简单。