ArrayList是日常開發中經常使用到的集合,其底層采用數組實現,因此元素按序存放。其優點是可以使用下標來訪問元素,時間復雜度是O(1)。其缺點是刪除和增加操作需要使用System.arraycopy()來移動部分受影響的元素,時間復雜度為O(N)。同時ArrayList由於是采用數組來存放數據 ...
前言 前面寫了一篇關於的是LinkedList的除了它的數據結構稍微有一點復雜之外,其他的都很好理解的。這一篇講的可能大家在開發中很少去用到。但是有的時候也可能是會用到的 注意在學習這一篇之前,需要有多線程的知識: 鎖機制:對象鎖 方法鎖 類鎖 對象鎖就是方法鎖:就是在一個類中的方法上加上synchronized關鍵字,這就是給這個方法加鎖了。 類鎖:鎖的是整個類,當有多個線程來聲明這個類的對象的 ...
2017-10-19 23:54 2 1255 推薦指數:
ArrayList是日常開發中經常使用到的集合,其底層采用數組實現,因此元素按序存放。其優點是可以使用下標來訪問元素,時間復雜度是O(1)。其缺點是刪除和增加操作需要使用System.arraycopy()來移動部分受影響的元素,時間復雜度為O(N)。同時ArrayList由於是采用數組來存放數據 ...
一、LinkedList簡介 LinkedList是一種可以在任何位置進行高效地插入和移除操作的有序序列,它是基於雙向鏈表實現的。 ps:這里有一個問題,就是關於實現LinkedList的 ...
一、HashSet簡介 HashSet是Set接口典型實現,它按照Hash算法來存儲集合中的元素,具有很好的存取和查找性能。主要具有以下特點: 不保證set的迭代順序 HashSet不是同步的,如果多個線程同時訪問一個HashSet,要通過代碼來保證其同步 集合元素值可以是 ...
是數組+鏈表+紅黑樹。 對於 HashMap ,作為集合容器,我們需要關注其數據的存儲結構,迭代方式 ...
前言 在前面的學習集合中只是介紹了集合的相關用法,我們想要更深入的去了解集合那就要通過我們去分析它的源碼來了解它。希望對集合有一個更進一步的理解! 既然是看源碼那我們要怎么看一個類的源碼呢?這里我推薦的方法是: 1)看繼承結構 看這個類的層次結構,處於一個 ...
一、 HashSet概述: HashSet實現Set接口,由哈希表(實際上是一個HashMap實例)支持。它不保證set 的迭代順序;特別是它不保證該順序恆久不變。此類允許使用null元素。 ...
一、概述 TreeMap是基於紅黑樹實現的。由於TreeMap實現了java.util.sortMap接口,集合中的映射關系是具有一定順序的,該映射根據其鍵的自然順序進行排序或者根據創建映射時提供的Comparator進行排序,具體取決於使用的構造方法。另外TreeMap中不允許鍵對象 ...
一、ArrayList簡介 ArrayList是可以動態增長和縮減的索引序列,它是基於數組實現的List類。 該類封裝了一個動態再分配的Object[]數組,每一個類對象都有一個capac ...