首页  >  文章  >  Java  >  文章的标题应该是:What are the Big-O Time Complexities of Java Collection Implements?

文章的标题应该是:What are the Big-O Time Complexities of Java Collection Implements?

Linda Hamilton
Linda Hamilton原创
2024-10-28 02:33:31765浏览

The title of the article should be: What are the Big-O Time Complexities of Java Collection Implementations?

Java 集合框架实现:大 O 总结

在教授“Java 速成课程”时,了解以下内容至关重要与各种集合实现相关的 Big-O 时间复杂度。虽然观众可能熟悉 Big-O 表示法,但他们不太可能知道特定集合上不同操作的具体复杂性。

幸运的是,《Java 泛型和集合》一书提供了有关这些复杂性的宝贵见解。本文总结了书中的信息,为每种类型的集合提供了详细的表格:列表、集合、映射和队列。

列表实现:

Operation ArrayList LinkedList CopyOnWriteArrayList
get O(1) O(n) O(1)
add O(1) O(1) O(n)
contains O(n) O(n) O(n)
next O(1) O(1) O(1)
remove(0) O(n) O(1) O(n)
iterator.remove O(n) O(1) O(n)

集合实现:

Operation HashSet LinkedHashSet CopyOnWriteArraySet EnumSet TreeSet ConcurrentSkipListSet
add O(1) O(1) O(n) O(1) O(log n) O(log n)
contains O(1) O(1) O(n) O(1) O(log n) O(log n)
next O(h/n) O(1) O(1) O(1) O(log n) O(1)
Notes h is the table capacity

地图实现:

Operation HashMap LinkedHashMap IdentityHashMap EnumMap TreeMap ConcurrentHashMap ConcurrentSkipListMap
get O(1) O(1) O(1) O(1) O(log n) O(1) O(log n)
containsKey O(1) O(1) O(1) O(1) O(log n) O(1) O(log n)
next O(h/n) O(1) O(h/n) O(1) O(log n) O(h/n) O(1)
Notes h is the table capacity

队列实现:

Operation PriorityQueue ConcurrentLinkedQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue DelayQueue LinkedList ArrayDeque LinkedBlockingDeque
offer O(log n) O(1) O(1) O(1) O(log n) O(log n) O(1) O(1) O(1)
peek O(1) O(1) O(1) O(1) O(1) O(1) O(1) O(1) O(1)
poll O(log n) O(1) O(1) O(1) O(log n) O(log n) O(1) O(1) O(1)
size O(1) O(n) O(1) O(1) O(1) O(1) O(1) O(1) O(1)

以上是文章的标题应该是:What are the Big-O Time Complexities of Java Collection Implements?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn