當我遇到了有關使用Java的ArrayList這次採訪的問題,我覺得這是很有趣的,但不知道如何回答這個問題:的ArrayList中的Java存儲大型對象
What attention should be paid when using arrayList to store large object?
我不知道我們是否應該回答這個關於時間/空間複雜性的問題?
感謝
當我遇到了有關使用Java的ArrayList這次採訪的問題,我覺得這是很有趣的,但不知道如何回答這個問題:的ArrayList中的Java存儲大型對象
What attention should be paid when using arrayList to store large object?
我不知道我們是否應該回答這個關於時間/空間複雜性的問題?
感謝
Java中的所有對象存儲作爲參考,在容器和變量等,所以在C++方面,所有容器只存儲指向的對象。在這種情況下,大多數情況下,對象的大小應爲無關。
內部ArrayList使用Object []。一旦達到最大容量,它將創建一個尺寸爲原來1.5倍的新陣列,並將從舊陣列複製到新陣列。可能是面試官想檢查一下這個副本的成本與大型對象
ArrayList: how does the size increase?
檢查的ensureCapacity() - http://www.docjar.com/html/api/java/util/ArrayList.java.html
的ArrayList支持動態數組根據需要,可以長。 在Java中,數組具有固定的長度,這意味着在創建數組後,它們不能增長或縮小,這意味着您必須事先知道數組將具有多少元素。但是,有時候,您可能直到運行時才知道大小,在這種情況下我們使用ArrayList。 ArrayList可以動態增加或減少大小。數組列表是使用初始大小創建的。超過此尺寸時,收集將自動放大。當對象被刪除時,數組可能會收縮。 另外,請注意,Arraylist商店僅對象。
我想一個ArrayList只存儲對象的引用?!所以它根本就不重要。 – sk2212 2013-03-13 09:13:07
問一個關於ArrayList的'ensureCapacity()'方法的問題嗎?可能意味着大數目的**對象? – 2013-03-13 09:16:58
存儲大對象不是問題,但是當您存儲大量對象時,通過重新分配數組大小,數組列表可能效率低下。 – rit 2013-03-13 09:23:39