這個hashmap實現方式應該是jdk1.7的,在資料量小的時候和jdk1.8實現的差不多,不過我這個沒有採用鍊錶長度8時轉化紅黑樹增加查詢效率,在擴容時也是全部元素重新hash,計算新的位置,
所以如果大資料量的時候,複製到新的陣列就會比較慢.,jdk8裡面對複製到新的陣列也是有優化的,我這裡就沒做了.
1package
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...