java - 从 Java 集合中访问元素的速度更快

标签 java performance collections

<分区>

我试图了解在访问 ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap 等 Java 集合中的元素时哪个更快

来自这个问题:Suitable java collection for fast get and fast removal ,我知道 ArrayList 的 O(1) 和 TreeMap 的 O(log n)

这里是:Map/ArrayList: which one is faster to search for an element显示 ArryList 是 O(n),HashMap 是 O(1) 和 TreeMap 是 O(log n)

这里是:Why is it faster to process a sorted array than an unsorted array?说排序数组比未排序数组快。由于 TreeMap 中的元素已排序,那么我可以假设所有已排序的集合都比未排序的集合更快吗?

请帮助我理解在从 list、set、map 等实现的 java 集合访问元素时使用哪个更快。

最佳答案

每种集合类型都适用于特定的场景。没有最快最好集合。

  • 如果您需要使用 index 快速访问元素,ArrayList 就是您的答案。
  • 如果您需要使用 快速访问元素,请使用HashMap
  • 如果您需要快速添加和删除元素,请使用 LinkedList(但它的索引访问性能非常差)。

等等。

关于java - 从 Java 集合中访问元素的速度更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300490/

相关文章:

java - 在 MultipleOutputs 中 - 避免将我的 key 写入文件

.net - 性能:XmlReader 或 LINQ to XML

xml - (简单的)改变 sql server 上的 xml 模式集合以修改元素的属性

java - 在列表中查找唯一值的快速方法

java - 在 LinkedHashSet 的第 0 个位置插入元素的成本?

java - 不使用 Jackson 库将 Json 反序列化为 Java 对象

java - 对象数组内的数组

html - 显示 : flex; vs calc(); performance

ruby-on-rails - rails : Faster way to perform updates on many records

c++ - 如何为我自己的集合类启用大括号括起来的初始化列表?