Java集合類常用方法時間復雜度


ArrayList常用方法時間復雜度

ArrayList底層數據結構是:數組

增加

add(E):尾部添加,時間復雜度O(1)
add(index, E): 指定位置添加,時間復雜度O(N);指定位置添加后,需要將指定位置后面的全部元素向后移動一個位置

刪除

remove(E) :刪除指定元素,需要先遍歷找到指定元素,因此時間復雜度是O(N)
remove(index):刪除指定位置元素,刪除后需要將指定位置后面的元素全部向前移動一個位置,時間復雜度O(N)

查詢

get(index):查詢指定位置元素,O(1)

set(index, E):修改指定位置元素,O(1)

contains()方法

需要遍歷數據去判斷是否存在指定元素,所以是O(N)

HashMap常用方法時間復雜度

HashMap底層數據結構是:數組+鏈表+紅黑樹
增刪查改時間復雜度均為O(1)
containsKey()方法時間復雜度是O(1)
containsValue()方法時間復雜度是O(N)

TreeMap常用方法時間復雜度

TreeMap底層數據結構是:紅黑樹
增刪查改時間復雜度均為O(logN)
containsKey()時間復雜度O(logN)
containsValue()時間復雜度O(N),因為value是無序的,所以要依次遍歷

LinkedHashMap常用方法時間復雜度

LinkedHashMap底層數據結構是:HashMap+雙向鏈表
增刪查改時間復雜度均為O(1)
containsKey()時間復雜度是O(1)
containsValue()時間復雜度是O(N)

HashSet常用方法時間復雜度

HashSet底層數據結構是基於HashMap來實現的
因此增刪查改時間復雜度均為O(1)
contains()方法時間復雜度O(1)

TreeSet常用方法時間復雜度

TreeSet底層數據結構是基於TreeMap來實現的
增刪查改時間復雜度均為O(logN)
contains()時間復雜度O(logN)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM