遍历哪个对象类型是java中最快的

时间:2012-04-08 10:30:20

标签: java collections

我想知道哪些Java集合类型遍历最快。我最感兴趣的收藏品是......

  1. 阵列
  2. 链表
  3. 队列
  4. PriorityLinkedList
  5. HashMap中

1 个答案:

答案 0 :(得分:2)

实际上,在具体的Collection接口类中,遍历将通过 array 快速进行。它因为你知道它遍历元素的索引。因为它遵循索引模式所以,遍历索引它使我们的遍历快速。别人为什么不呢?让我逐一解释..

1. LinkedList :LinkedList遵循插入顺序。如果遍历数据并搜索元素,则它将从头开始搜索每个元素。因此,遍历变得缓慢。

2. 队列:LinkedList和PriorityQueue是Qu​​eue的两个具体类。优先级队列的元素按其自然顺序排序,或者由队列构造时提供的比较器排序,具体取决于使用的构造函数。不保证以任何特定顺序遍历优先级队列的元素。如果需要有序遍历,考虑使用Arrays.sort(pq.toArray())。因此,如果在没有明确排序的情况下进行遍历,则对于提供的遍历变得无用。

3. HashMap :如果使用Map而不是Collection,则不保证遍历遍历,因为它适用于key元素的hashcode。所以这里再次遍历变得毫无用处。您可以通过提供元素的键值来直接搜索元素。

4. PriorityLinkedList :Java API中不存在此类。