我想知道哪些 Java 集合类型的遍历速度最快。我最感兴趣的收藏是...
- 大批
- 链表
- 队列
- 优先链表
- 哈希映射
实际上在 Collection 接口的具体类中,遍历数组会很快。这是因为您知道它使用元素的索引进行遍历。由于它遵循索引模式,因此遍历索引使我们的遍历速度更快。为什么不是其他人?让我一一解释..
1. LinkedList : LinkedList 遵循插入顺序。如果您遍历数据并搜索元素,则对于每个元素,它将从头开始搜索。所以遍历变得很慢。
2.队列:LinkedList和PriorityQueue是Queue的两个具体类。优先级队列的元素根据其自然顺序排序,或者由队列构建时提供的 Comparator 排序,具体取决于使用的构造函数。不保证以任何特定顺序遍历优先级队列的元素。如果需要有序遍历,考虑使用 Arrays.sort(pq.toArray())。因此,如果您在没有明确排序的情况下进行遍历,则它对于遍历提供的遍历变得无用。
3. HashMap:如果使用 Map 而不是 Collection ,这里不能保证遍历,因为它适用于关键元素的 hashcode。所以这里再次遍历变得无用。您可以通过提供元素的键值来直接搜索元素。
4. PriorityLinkedList:Java API 中不存在此类。