public inte***ce extmap
import com.mayikt.jdk7hash.extmap.entry;
/** * 手寫jdk1.7的hashmap
* * @author zjmiec
* */
public class extjdk7haspmapimplements extmap
/*** 2.判斷陣列 是否需要擴容 為什麼需要擴容? 使用鍊錶查詢,鍊錶越長,查詢效率越慢,而且, 陣列儲存採用hash下標,
* 過短會導致hash衝突的機率增加 如果size大於12,進行擴容陣列,大小為之前的兩倍
*/if (size > default_load_factor * default_initial_capacity)
// 3.計算hash制定下標
int index = getindex(k, default_initial_capacity);
nodenode = table[index];
if (node == null) else else
}newnode = newnode.next;
}} table[index] = node;
return null;
} private void resize()
} // 3.將新的table的賦值給舊的table
table = newtable;
default_initial_capacity = newtable.length;
newtable = null;
} void print() else*/}
system.out.println();
} }public v get(k k)
public nodegetnode(nodenode, k k)
node = node.next;
} return null;
} public int size()
public int getindex(k k, int length)
class nodeimplements entry
public node(k key, v value, nodenext)
public v getvalue()
public v setvalue(v value)
}}
手寫jQuery與原始碼分析
所以,jquery以物件的方式繫結到window物件,實現相關操作。function global,factory window,function window 生成原型物件並覆蓋prototype物件 jquery.fn jquery.prototype 物件if typeof selector ...
HashMap JDK1 7原始碼分析
hashmapjdk原始碼分析 建構函式 底層資料結構 基本屬性 擴容方式 預設值繼承關係 crud方式 基本屬性 static final int default initial capacity 1 4 aka 16 雜湊表中陣列預設初始值大小為16 static final int maxim...
1 7 HashMap原始碼分析
1.7 hashmap原始碼分析,最近準備面試,整理一下知識點,雖然hashmap的原始碼在網上都已經快翻爛了,但是自己再寫一遍也會加深一下記憶,再走一遍原始碼,就感覺hashmap是自己寫的對不對!之後我也會分析一下1.8的hashmap的原始碼!好了 屁話不多說,開始我們原始碼分析!1.基本屬性...