0

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

4

3 回答 3

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;

是的,数据已经加载。

于 2013-06-18T07:57:51.213 回答
0

列表中的所有对象都已经在内存中。整个 arraylist 填充了您通过数据库检索到的元素。没有动态加载arraylist这样的东西。

于 2013-06-18T07:59:10.827 回答
0

我不确定您将什么用于 DB 部分。如果你使用 hibernate 之类的工具,这个 arraylist 是动态加载的。当你说动态时要清楚,当你尝试访问arraylist时它会被加载,但即使在那里它也会一次加载(所有字节都被填充)。Arraylist internal 使用数组来管理元素的集合。

所以,如果你使用普通的 jdbc 来获取记录,你必须自己填充 Arraylist。那里没有任何动态。底线,因为它在内部使用数组,它就像填充数组一样简单。

于 2013-06-18T08:03:30.873 回答