LinkedHashMap,原始碼解讀就是這麼簡單

2021-09-27 05:12:17 字數 1362 閱讀 2077

public class linkedhashmapextends hashmapimplements map
static class entryextends hashmap.node}

mapseqmap = new linkedhashmap<>();seqmap.put("c", 100);seqmap.put("d", 200);seqmap.put("a", 500);seqmap.put("d", 300);for(entryentry : seqmap.entryset())執行結
c 100d 300a 500

mapaccessmap = new linkedhashmap<>(16, 0.75f, true);accessmap.put("c", 100);accessmap.put("d", 200);accessmap.put("a", 500);accessmap.get("c");accessmap.put("d", 300);for(entryentry : accessmap.entryset())
a 500 

c 100 

d 300

//雙鏈表的頭節點transient linkedhashmap.entryhead;//雙鏈表的尾節點transient linkedhashmap.entrytail;/** * 這個字段表示雜湊表的迭代順序 * true表示按訪問順序迭代 * false表示按插入順序迭代 * linkedhashmap的建構函式均將該值設為false,因此預設為false */final boolean accessorder;
public linkedhashmap(int initialcapacity,

float loadfactor,

boolean accessorder)

afternodeinsertion

afternodeinsertion

void afternoderemoval(nodee)
void afternodeinsertion(boolean evict) }
protected boolean removeeldestentry(map.entryeldest)
void afternodeaccess(nodee) 

tail = p;

++modcount;

}}

public v get(object key)
public boolean containsvalue(object value) 

return false;}

AbstractCollection原始碼分析

abstractcollection抽象類提供了collection的骨架實現,collection分析請看 這裡直接看它的 是如何實現的.public abstract iterator iterator 該方法沒有實現.public abstract int size 該方法沒有實現.publi...

ThreadPoolExecutor原始碼閱讀

執行緒池解決兩個問題 一是復用執行緒,減少建立銷毀執行緒帶來系統開銷 二是限定系統資源使用邊界,避免大量執行緒消耗盡系統記憶體 適用於互不依賴,執行時間短,不需要對執行緒控制操作的執行緒 新增任務時,1.若執行緒數量小於corepoolsize,則新增執行緒執行任務 2.若執行緒數量大於等於core...

OrangePi One Android 原始碼編譯

一 系統環境搭建參照 二 lichee原始碼編譯 1.檢視help build.sh h2.配置核心 cd linux 3.4 make arch arm menuconfig 進入配置頁面,上下移動列表,空格是選擇列表,左右移動選擇退出選項 3.首次編譯執行清除 在 lichee linux3.4...