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