首頁 >Java >java教程 >不同 Java 集合框架操作的 Big-O 時間複雜度是多少?

不同 Java 集合框架操作的 Big-O 時間複雜度是多少?

Patricia Arquette
Patricia Arquette原創
2024-10-29 07:52:30719瀏覽

 What are the Big-O Time Complexities of Different Java Collections Framework Operations?

Java 集合框架實現的Big-O 表示法

在即將到來的Java 速成課程中,有必要提供一個簡潔的不同集合實現上的各種操作的時間複雜度的總結。

列表實作

Implementation get add contains next remove(0) iterator.remove
ArrayList O(1) O(1) O(n) O(1) O(n) O(n)
LinkedList O(n) O(1) O(n) O(1) O(1) O(1)
CopyOnWrite-ArrayList O(1) O(n) O(n) O(1) O(n) O(n)

列表實作

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

地圖實作

Implementation get containsKey next Notes
HashMap O(1) O(1) O(h/n) h is the table capacity
LinkedHashMap O(1) O(1) O(1) -
IdentityHashMap O(1) O(1) O(h/n) h is the table capacity
EnumMap O(1) O(1) O(1) -
TreeMap O(log n) O(log n) O(log n) -
ConcurrentHashMap O(1) O(1) O(h/n) h is the table capacity
ConcurrentSkipListMap O(log n) O(log n) O(1) -
地圖實作

隊列實作

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

其他資源

要進一步探索,請考慮以下寶貴的資源:

  • 集合概述:提供有用的匯總表
  • 帶註釋的大綱:在單一頁面上包含實現的完整列表

以上是不同 Java 集合框架操作的 Big-O 時間複雜度是多少?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn