2012-04-08 45 views
-1

我想知道哪些Java集合類型是遍歷最快的。收藏我最感興趣的是...遍歷java中最快的對象類型

  1. 陣列
  2. LinkedList的
  3. 隊列
  4. PriorityLinkedList
  5. HashMap的
+0

你到底需要做什麼? – 2012-04-08 10:32:12

+1

這取決於你正在使用它們。 – dexametason 2012-04-08 10:39:51

+3

聞起來像作業... – Lucero 2012-04-08 10:41:17

回答

2

其實具體類Collection接口中,穿越會快速通過陣列。因爲你知道它會遍歷元素的索引。因爲它遵循索引模式,所以遍歷索引使它快速遍歷。爲什麼不是別人?讓我一一解釋。

1. LinkedList:LinkedList遵循插入順序。如果遍歷數據並搜索元素,則將從頭開始搜索每個元素。所以遍歷變得緩慢。

2. 隊列:LinkedList和PriorityQueue是Qu​​eue的兩個具體類。優先級隊列的元素根據其自然順序排序,或者由排隊構建時提供的比較器排序,具體取決於使用哪個構造函數。不保證以任何特定順序遍歷優先級隊列的元素。如果需要有序的遍歷,考慮使用Arrays.sort(pq.toArray())。所以如果遍歷而沒有明確地對它進行排序,它就變得沒用了。

3. HashMap:如果您使用Map而不是Collection,那麼遍歷無法在這裏保證,因爲它在關鍵元素的hashcode上工作。所以再次遍歷變得毫無用處。您可以通過提供元素的鍵值直接搜索元素。

4. PriorityLinkedList:該類在Java API中不存在。

+0

謝謝WATTO Studios – abhi 2012-04-09 05:52:31

+0

我需要在我的項目中相應地設計一些組件 – abhi 2012-04-09 05:53:11

+0

感謝pkumar28分享信息 – abhi 2012-04-09 05:55:02