自己實現乙個簡單的hashmap

2022-07-21 15:51:31 字數 1489 閱讀 9292

這個hashmap實現方式應該是jdk1.7的,在資料量小的時候和jdk1.8實現的差不多,不過我這個沒有採用鍊錶長度8時轉化紅黑樹增加查詢效率,在擴容時也是全部元素重新hash,計算新的位置,

所以如果大資料量的時候,複製到新的陣列就會比較慢.,jdk8裡面對複製到新的陣列也是有優化的,我這裡就沒做了.

1

package

com.tqq;23

/**4

* @description: 自己實現簡易hashmap,只有put和get,會自動擴容,沒有煉表達到長度轉紅黑樹

5* @author: tan

6* @createdate: 2020/3/157*

*/8public

class myhashmap

2930

public

node() 32}

3334

3536

public

v put(k key,v value)

41//

得到當前key存放於節點陣列中的索引

42int nodearrayindex=(key.hashcode())%nodearray.length;

4344 nodearrayindex=math.abs(nodearrayindex);

45 node indexnode=nodearray[nodearrayindex];

46if(indexnode==null

)else

58if(next.nextnode==null

)63 next=next.nextnode;64}

65}66 nodecount++;

67resize();

68return

returnvalue;69}

7071

72public

v get(k key)

80while ((indexnode=indexnode.nextnode)!=null)84

}85}86

return

null;87

}888990

public

void

resize()

100}

101}

102 nodearray=newnodearray;

103}

104}

105106

//移動

107public

void

nodemove(node node,node newnodearray)else

119if(next.nextnode==null

)123 next=next.nextnode;

124}

125}

126}

127128

129 }

自己實現乙個簡單的ArrayList

自己簡單的實現arraylist的 註解很清楚了,寫了arraylist的add obj 方法 remove index 方法,get index 方法,自己定義迭代器,自己進行迭代 迭代器介面 public inte ce iterator集合 的實現 version description 自己...

自己動手實現乙個簡單的React

為了更好的理解react,我決定讀preact的原始碼,preact是乙個非常小的框架,同時也和react的實現原理以及api一樣,幾乎可以很好代替react。雖然還是有一些差異的。但是使用的時候幾乎不會有什麼違和感。看原始碼總是不夠過癮,於是做了乙個偉大的決定就是自己親手去寫乙個react,畢竟p...

自己動手實現乙個簡單的string類 一

定義乙個基本的 string 類 class string private char base long int length 我們可以看到在這個類裡面我們用乙個char型指標來儲存字串值,long int 型值length來儲存字串的長度。由於我們知道string類支援這樣的建構函式 string...