原始碼分析之手寫1 7HahMap 三

2021-09-02 17:53:40 字數 1239 閱讀 9530

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.基本屬性...