Java 集合时间复杂度
List
ArrayList
get() 直接讀取下標,復雜度 O(1)
add(E) 直接在隊尾添加,復雜度 O(1)
add(index, E) 在第n個元素后插入,n后面的元素需要向后移動,復雜度 O(n)
remove() 刪除元素后面的元素需要逐個前移,復雜度 O(n)
LinkedList
addFirst() 添加隊列頭部,復雜度 O(1)
removeFirst() 刪除隊列頭部,復雜度 O(1)
addLast() 添加隊列尾部,復雜度 O(1)
removeLast() 刪除隊列尾部,復雜度 O(1)
getFirst() 獲取隊列頭部,復雜度 O(1)
getLast() 獲取隊列尾部,復雜度 O(1)
get() 獲取第n個元素,依次遍歷,復雜度O(n)
add(E) 添加到隊列尾部,復雜度O(1)
add(index, E) 添加到第n個元素后,需要先查找到第n個元素,復雜度O(n)
remove() 刪除元素,修改前后元素節點指針,復雜度O(1)
Set
HashSet
add() 復雜度為 O(1)
remove() 復雜度為 O(1)
contains() 復雜度為 O(1)
TreeSet(基于紅黑樹)
add() 復雜度為 O(log (n))
remove() 復雜度為 O(log (n))
contains() 復雜度為 O(log (n))
map
TreeMap(基于紅黑樹)
平均時間復雜度 O(log n)
HashMap
正常時間復雜度 O(1)~O(n)
紅黑樹后 O(log n)
LinkedHashMap
能以時間復雜度 O(1) 查找元素,又能夠保證key的有序性
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Java 集合时间复杂度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 揪出XXL-JOB中的细节
- 下一篇: ES更新嵌套数组(使用Java API)