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)
