public baseHashSet(int initSize) { int size = MathTool.nextPrime((int)Math.Ceiling(initSize / _maxLoadFactor)); _ary = new K[size]; //bool[] will have the default value of false _aryValid = new bool[size]; }
private void rehash() { K[] oldAry = _ary; bool[] oldAryValid = _aryValid; _ary = new K[MathTool.nextPrime(oldAry.Length * 2)]; _aryValid = new bool[_ary.Length]; for (int i = 0; i < oldAry.Length; i++) { if (oldAryValid[i]) { int loc = loc_findSlot(oldAry[i]); _ary[loc] = oldAry[i]; _aryValid[loc] = true; } } }
private void rehash() { pair[] oldAry = _ary; bool[] oldAryValid = _aryValid; int newSize = MathTool.nextPrime(oldAry.Length * 2); _ary = new pair[newSize]; _aryValid = new bool[_ary.Length]; for (int i = 0; i < oldAry.Length; i++) { if (oldAryValid[i]) { int loc = loc_findSlot(oldAry[i].key); _ary[loc].key = oldAry[i].key; _ary[loc].value = oldAry[i].value; _aryValid[loc] = true; } } }