2016-08-20 73 views
0

我想知道什麼時候用集和List.On它應該是其基礎decided.For例如,當我們面對的是爲了應用,在那我應該怎麼用? List any = new ArrayList <>(); 或 Set any = new HashSet(); 或LinkedList。如何從List Set中決定應該使用哪個集合?

+4

不少各地處理這個問題。看看例如在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

+0

http://stackoverflow.com/a/21974362/1545775 –

回答

2

這一切都取決於你的當前需求

例如,考慮約

  1. 一些要點如果您要訪問的元素,你將他們以同樣的方式,那麼你應該使用List,因爲List是元素的有序集合。您可以使用get(int index)方法訪問它們,而Set沒有此類方法。無法保證它們的存儲順序。

  2. 如果你的元素包含重複,然後用List因爲Set不允許重複,而如果你的元素是唯一的,那麼你可以使用Set

  3. 至於LinkedListArrayList被認爲是:

    • 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

相關問題