Java中除鏈表之外是否有任何無界列表? 我必須將BLOB對象存儲在列表中。我目前使用arrayList,但我擔心列表大小增長時,ArrayList可能無法存儲(可能達到最大容量)。 我想過使用鏈表,但它看起來效率不高。java中的無界列表
回答
ArrayList
沒有任何大小限制 - 它會擴大,以適應您添加到它的元素。
ArrayList
可能在技術上限制爲2^31-1的值 - 或大約20億個元素 - 但是您將首先用完RAM。
*「...但你會先用完RAM」* - 或者你的應用程序將停止處理在可怕列表上進行'O(N)'操作:-) –
這是真的......但它仍然會比'LinkedList'要快,所以呃。 –
我不同意你的觀點。我正在強化它......通過指出爲什麼怪異列表根本不起作用的另一個原因。 –
當 列表的大小增加時,arraylist可能無法存儲(其大小限制)。
什麼尺寸的限制?
List<Blob> blobs = new ArrayList<Blob>();
你只能通過你的內存可以分配給JVM或者,作爲yshavit正確地指出的下方,該指數最大整數值的限制。
那麼,從技術上講,你受到'Integer.MAX_VALUE'(2^31-1)的限制,因爲這是最大的數組。但這不會成爲你實踐中的限制因素。 – yshavit
請注意,Java中有幾十個Collection實現,完全取決於您的需求。例如,ArrayList沒有有效的大小限制,因此在達到最大大小之前您將遇到OutOfMemoryError。 結帳Collections page才決定。
- 1. Java中的無界PipedInputStream
- 2. 簡化的Java列表邊界檢查
- 3. WPF列表框是無界的窗口
- 4. 無法理解的界面中的Java
- 5. 列表鑄造界面是用Java
- 6. Java中的無界通配符
- 7. 陣列出的Java界?
- 8. 在java中有沒有(無界)公平阻塞隊列?
- 9. 無法創建Java列表
- 10. 無法在Scala中迭代Java列表
- 11. python列表邊界
- 12. 在java中創建表格界面
- 13. Java泛型:無繼承的邊界
- 14. 的Java EE7 @local和無界面視圖
- 15. 無法在列表中使用java追加列表
- 16. xslt列出無界元素
- 17. 泛型 - 不能添加到列表中無界通配符
- 18. Java - 獲取列表中的列表
- 19. 瞭解Java中列表的列表
- 20. 世界各省在下拉列表中的詳盡列表
- 21. 列表刻字和無序排列的問題在Java中
- 22. 打印陣列出界的java
- 23. Java列表界面包含(對象O)方法的簽名
- 24. java中的用戶界面
- 25. 的Java:邊界
- 26. 邊界的Java
- 27. 蟒蛇matplotlib表無國界
- 28. .NET SOAP序列化無界序列
- 29. 無法將java temp列表附加到更大的列表
- 30. 無序列表的中心列表項
ArrayList有什麼問題?我沒有在[它的文檔](http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html)中看到它有任何大小限制。 (如果您擔心列表的「容量」,則會在添加新元素時自動增加。) – Wyzard
除非您有超過2^31 + 1個對象,否則ArrayList或LinkedList將會很好。無論如何,你都會遇到極大的內存負載。 – Vulcan
你可以在這裏參考這個相似的答案。 http://stackoverflow.com/questions/3767979/how-many-data-a-list-can-hold-at-the-maximum – user1500049