回答
這將取決於你的需求,其收藏將是合適的,如果是字符串的列表,然後使用java.util.List
,或者如果它被設置爲String,然後使用java.util.Set
,或者也鍵值對,然後使用Map
。
並且每個接口的實現也具體要求。
當你在談論的數據量,然後它帶有兩件事情:
- 性能
- 內存。
如果是ArrayList,則說明性能 - add操作以攤銷常量時間運行,即添加n個元素需要O(n)
時間。所有其他操作在線性時間內運行(粗略地說)。與LinkedList
實現相比,常數因子較低。
如果是HashSet
,它還爲基本操作(add, remove, contains and size
)提供恆定的時間性能,假設散列函數在桶之間正確分散元素。
HashMap
爲基本操作(get and put
)提供了恆定時間性能O(1)
。
並且如果大量收集耗盡內存,這意味着如果您得到OutOfMemoryExcaption
,則說說內存。然後你必須通過-Xmxn
來增加你的堆空間。
-XmxÑ
指定的最大大小,以字節爲單位,分配的內存池。該值必須是大於2MB的1024的倍數。附加字母k或K表示千字節,或者m或M表示兆字節。默認值是64MB。在Solaris 7和Solaris 8 SPARC平臺上此值的上限約爲4000米,在Solaris 2.6和x86平臺上約爲2000米,減去開銷量。像-Xmx2048m
良好的答覆,此外,如果有重複的字符串使用'String.intern()'來保存內存。兩個內容相同的字符串共享內存。 – akuhn
沒有關於上下文和頻繁操作的更多信息,似乎最好使用簡單的字符串數組或嵌入式Java DB。
- 1. 什麼集合類用來存儲長字符串?
- 2. 是字符串(字節[],字符集)存儲器高效
- 3. 如何高效地處理java中數百萬元組的集合?
- 4. PostgreSQL的:如何高效填入表10個百萬行與隨機字符串
- 5. 爲什麼字符串存儲在Java中的字符串池?
- 6. 保持標記化字符串的Android內存高效集合
- 7. 什麼集合來存儲樹結構?
- 8. 使用CrateData來索引和存儲1百萬PDF文件
- 9. 什麼是一個有效的方式來加載超過一百萬圖像收集卡遊戲?
- 10. 爲什麼java使用2個字節來存儲char值
- 11. 使用ArrayList來存儲字符串
- 12. 使用Strtok存儲一串字符串
- 13. 使用字符串資源來存儲一個網址給WebView.loadURL
- 14. MySQL - 我應該使用什麼數據類型來存儲一組字符串
- 15. 使用內存數據庫來存儲數百萬個臨時值的效率如何?
- 16. 使用php搜索字符串數以百萬計的條件
- 17. C#:什麼是最好的集合類來存儲非常相似的字符串項目,以便高效地將序列化到文件
- 18. 如何存儲三個字符串集合的列表?
- 19. 用於存儲百萬條記錄的Java地圖
- 20. 迭代java集合的性能高效方法是什麼?
- 21. 查找最長集合在一個字符串連續字符使用Java
- 22. Java:傳遞一個字符串並將其存儲
- 23. 具有公共前綴的字符串的空間高效集合 - Java實現
- 24. 如何在java文檔中搜索1百萬字符串?
- 25. Java中高效的字符串讀取?
- 26. Java語言中的高效字符串
- 27. java中的高效字符串匹配
- 28. 通緝:.Net集合,存儲一堆大小寫不敏感的字符串快速和高效
- 29. 什麼是正確的SQLAlchemy類型來存儲大字符串?
- 30. 存儲一百萬個值的最佳數據結構?
您需要提供更多信息。你想用字符串做什麼?是否會有很多插入,刪除,迭代和搜索? – Keppil
除了@ Keppil的問題之外,字符串還有多長? –
你爲什麼要在內存中加載百萬條記錄?考慮以塊加載它們,然後你可以使用List/Set collection api。 –