2012-04-08 35 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