原创 Java-Collection源碼分析(一)——Collection接口和AbstractCollection類

一、Collection整體架構 二、Collection源碼分析 Collection提供了高度抽象的處理集合的基本方法: int size(); boolean isEmpty(); boolean co

原创 Java-Collection源碼分析(四)——ArrayList

ArrayList類 ArrayList是實現List接口的動態數組,所謂動態就是它的大小是可變的。實現了所有可選列表操作,並允許包括 null 在內的所有元素。除了實現 List 接口外,此類還提供一些方法來操作內部用來存儲列表的數組

原创 Java-Collection源碼分析(三)——List和AbstractList

一、List接口 有序集合(也稱爲序列)。該界面的用戶可以精確控制列表中每個元素的插入位置。用戶可以通過整數索引(列表中的位置)訪問元素,並搜索列表中的元素。 與集合不同,列表通常允許重複的元素(包括空元素)。列表界面除了Collect

原创 Java-Collection源碼分析(九)——WeakHashMap

  WeakHashMap 繼承於AbstractMap,實現了Map接口。和HashMap一樣,WeakHashMap也是一個哈希表,它存儲的內容也是鍵值對(key-value)映射,而且鍵和值都可以是null。 WeakHashMap

原创 Java-Collection源碼分析(八)——LinkedHashMap

一、LinkedHashMap數據結構 LinkedHashMap是建立在HashMap的數組、鏈表和紅黑樹的基礎上,添加了一個雙向循環列表,將HashMap中的元素鏈接起來。 static class Entry<K,V> e

原创 Java-Collection源碼分析(十二)——Set、AbstractSet、HashSet和LinkedHashSet

一、set的集合框架 二、Set接口 Set接口除了從Collection接口繼承之外,還添加了所有構造函數的約定以及add,equals和hashCode方法的約定。 public interface Set<E> extends

原创 Java-Collection源碼分析(五)——AbstractSequentiaList和LinkedList

一、AbstractSequentialList抽象類 這個類提供了一個基本的List接口實現,爲實現序列訪問的數據儲存結構的提供了所需要的最小化的接口實現。對於支持隨機訪問數據的List比如數組,應該優先使用AbstractList。

原创 Java-Collection源碼分析(十一)—— IdentityHashMap

 IdentityHashMap 繼承了AbstractMap類實現了Map 接口。 主要有兩方面的特點: 在數據結構方面:將key與value值相繼保存在hash表中,如下圖所示 在查找數據方面:value值採用的“==”的方式,而不是

原创 Spring Boot實戰(1)——Velocity語法

主要是根據需要翻譯了部分內容,具體查看官方文檔點擊打開鏈接 Velocity是一個基於Java的模板引擎。它允許網頁設計人員參考Java代碼中定義的方法。Web設計人員可以與Java程序員並行工作,根據模型 - 視圖 - 控制器(MVC)

原创 Java-Collection源碼分析(十)——hashTable

 Hashtable同樣是基於哈希表實現的,同樣每個元素是一個key-value對,不允許value值爲null,採用單向鏈表的形式。具體操作與單向鏈表相同。 源碼分析 public class Hashtable<K,V> extend

原创 Java-Collection源碼分析(十三)——TreeMap

TreeMap採用了紅黑樹的數據結構。 一、紅黑樹 紅黑樹是一個二叉搜索樹,它在每個節點上增加了一個存儲位來表示節點顏色,可以是RED或BLACK。紅黑樹的本質還是二叉樹。由二叉樹進化爲2-3樹或者是2-3-4樹,然後再進化爲紅黑樹,接

原创 Java-Collection源碼分析(十二)——SortedMap和NavigableMap

一、SortedMap public interface SortedMap<K,V> extends Map<K,V> { //返回用於對該地圖中的鍵進行排序的比較器,如果此map使用其鍵的自然排序,則返回null。 Co

原创 Java-Collection源碼分析(六)——Map接口

一、Map的集合框架 二、Map接口 將鍵映射到值的對象。map不能包含重複的鍵;每個鍵可以映射到最多一個值。該接口取代了Dictionary類,Dictionary是一個完全抽象的類而不是接口。Map接口提供三個集合視圖,允許將映射

原创 Java-Collection源碼分析(十四)——SortedSet、NavigableSet和TreeSet

一、SortedSet接口 此接口主要定義了一些抽象的基本方法 public interface SortedSet<E> extends Set<E> { //返回用於對該集合中的元素進行排序的比較器,如果此集合使用其元素的自然

原创 Java-Collection源碼分析(七)——HashMap

閱讀源碼的能力還是太菜,光理解HashMap的數據結構就花了我大半天的時間。JDK1.8中的HashMap的數據結構採用了數組、單向鏈表和紅黑樹組合的形式。 一、數據結構 數組中保存的是鏈表的首節點,當鏈表的數量大於8時,就會將鏈表結