我想知道什麼時候用集和List.On它應該是其基礎decided.For例如,當我們面對的是爲了應用,在那我應該怎麼用? List any = new ArrayList <>(); 或 Set any = new HashSet(); 或LinkedList。如何從List Set中決定應該使用哪個集合?
0
A
回答
2
這一切都取決於你的當前需求
例如,考慮約
一些要點如果您要訪問的元素,你將他們以同樣的方式,那麼你應該使用
List
,因爲List
是元素的有序集合。您可以使用get(int index)
方法訪問它們,而Set
沒有此類方法。無法保證它們的存儲順序。如果你的元素包含重複,然後用
List
因爲Set
不允許重複,而如果你的元素是唯一的,那麼你可以使用Set
。至於
LinkedList
和ArrayList
被認爲是:LinkedList
是緩慢的,因爲他們只允許順序訪問。但是如果你的元素大小經常發生變化,那麼它們就很好,而如果你的元素的大小是固定的,那麼你應該使用ArrayList
,因爲它們允許快速的隨機讀取訪問,所以你可以在固定時間內抓取任何元素。- 然而,當你需要大量的刪除操作,因爲添加或從任何地方卸下但最終需要在整體平移後的元素
ArrayList
並不好。 ArrayList
都沒有考慮好,當你有,因爲如果你想在中間插入一個新的元素(並保持在同一順序的所有元素),插入在中間任何那麼你將不得不一切後移該位置插入了元素,而LinkedList
中的這種操作僅需要更改一些引用。
看看幾個數據結構的特點,根據你的要求,你可以決定你應該使用哪些數據結構。
還看到:
- When to use LinkedList over ArrayList?
- What is the difference between Set and List?
- What Java Collection should I use?
- Insertion in the middle of ArrayList vs LinkedList
相關問題
- 1. 我應該使用哪個集合
- 2. 應該在哪裏使用System.Collections.Concurrent集合?
- 3. 在這種情況下應該使用哪個集合?
- 4. 如何指定我想在Modello中使用Set而不是List?
- 5. 你如何決定代碼的哪個部分應該被整合/重構?
- 6. 集合來自哪裏「val Singleton4:Set = set => set == 4」?
- 7. 你如何決定使用哪個ORM?
- 8. 我應該如何決定哪個類負責對象創建?
- 9. 在Set集合中綁定對象
- 10. 在Java中使用哪個集合?
- 11. 我應該在.NET中使用哪個集合接口進行COM-interop?
- 12. ASP.NET應該使用哪種類型的集合?
- 13. 我應該如何從另一個解決方案中引用程序集?
- 14. 我應該使用哪種設計模式來存儲集合?
- 15. 如何在Spark中註冊List集合?
- 16. 哪個字符集應該用於Mysql
- 17. 我應該在mysql中使用SET NAMES?
- 18. 如何從一個特定集合中蒙戈使用Ruby
- 19. 我應該使用哪些elasticsearch聚合?
- 20. c# - 我應該使用「ref」通過引用一個方法來傳遞一個集合(例如List)嗎?
- 21. 如何確定應該使用哪個樹遍歷?
- 22. 我應該使用JSON轉換哪個集合並再次解析?
- 23. WCF OperationContract - 我應該公開哪種通用集合類型?
- 24. 哪個集合應該是有效的這個問題
- 25. 我應該在哪裏存儲len(list)?
- 26. 春天,如何決定客戶端應該服務哪個用戶?
- 27. 我應該如何用Javascript解決這個組合場景?
- 28. 如何指定哪個@Tag應該用於IntelliJ中的Junit
- 29. 生成元素的所有可能的組合,從字符數組 - 使用集合框架(List和Set)
- 30. 我該如何指定一個情節應該去哪個圖?
不少各地處理這個問題。看看例如在http://stackoverflow.com/questions/1035008/what-is-the-difference-between-set-and-list,http://stackoverflow.com/questions/322715/when-to-use-linkedlist-over -arraylist – lrnzcig
http://stackoverflow.com/a/21974362/1545775 –