我想知道什麼時候用集和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. Android集合,我應該使用哪些?
- 3. 應該在哪裏使用System.Collections.Concurrent集合?
- 4. 在這種情況下應該使用哪個集合?
- 5. 如何確定在WPF中使用哪個集合
- 6. 你如何決定代碼的哪個部分應該被整合/重構?
- 7. 如何指定我想在Modello中使用Set而不是List?
- 8. 集合來自哪裏「val Singleton4:Set = set => set == 4」?
- 9. 你如何決定使用哪個ORM?
- 10. DispatchMessage如何決定使用哪個WndProc?
- 11. 我應該如何決定哪個類負責對象創建?
- 12. Hibernate Criteria在restrinction中使用集合(Set)
- 13. 在Set集合中綁定對象
- 14. 要使用哪個集合?
- 15. 在Java中使用哪個集合?
- 16. 我應該在.NET中使用哪個集合接口進行COM-interop?
- 17. 我應該使用什麼Java集合?
- 18. 哪個Point2D應該使用
- 19. ASP.NET應該使用哪種類型的集合?
- 20. 如何通過ODBC連接在C#中傳遞Informix集合參數(LIST,SET,MULTISET)
- 21. 我應該使用哪種設計模式來存儲集合?
- 22. 我應該如何從另一個解決方案中引用程序集?
- 23. 哪個字符集應該用於Mysql
- 24. 我應該使用每個集合還是幾個集合來發佈一個?
- 25. 如何在Spark中註冊List集合?
- 26. 我應該在java中選擇哪個集合?
- 27. 應該使用哪個sn.exe?
- 28. 我應該在mysql中使用SET NAMES?
- 29. 我應該使用哪些elasticsearch聚合?
- 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 –