Ejemplo n.º 1
0
 private void init(int capacity) {
   if (capacity < HashUtil.MIN_CAPACITY) {
     capacity = HashUtil.MIN_CAPACITY;
   }
   allocateTable(HashUtil.getCeilingPrime((int) (capacity / loadFactor)));
   this.capacity = capacity;
   size = 0;
 }
Ejemplo n.º 2
0
 private void rehash(int capacity) {
   final int length = HashUtil.getCeilingPrime((int) (capacity / loadFactor));
   this.capacity = capacity;
   if (length != table.length) {
     final Iterator<Map.Entry<Integer, V>> entries = entrySet().iterator();
     allocateTable(length);
     final Entry<V>[] table = this.table;
     final int mask = this.mask;
     while (entries.hasNext()) {
       final Entry<V> e = (Entry<V>) entries.next();
       final int index = HashUtil.indexFor(e.key, length, mask);
       e.hashNext = table[index];
       table[index] = e;
     }
   }
 }
Ejemplo n.º 3
0
 private void rehash(int capacity) {
   final int length = HashUtil.getCeilingPrime((int) (capacity / loadFactor));
   this.capacity = capacity;
   if (length != table.length) {
     final Iterator<Entry> entries = new RehashIterator();
     allocateTable(length);
     final Entry[] table = this.table;
     final int shift = this.shift;
     final int mask = this.mask;
     while (entries.hasNext()) {
       final Entry e = entries.next();
       final int index = HashUtil.indexFor(e.key, length, shift, mask);
       e.hashNext = table[index];
       table[index] = e;
     }
   }
 }