org.h2.util

## Class HashBase

- java.lang.Object
- - org.h2.util.HashBase

Direct Known Subclasses:
  IntIntHashMap

    public abstract class HashBase
    extends java.lang.Object

The base for other hash classes.

### Field Summary

Fields
`protected int` `deletedCount` The number of deleted slots.
`protected int` `len` The number of slots in the table.
`protected int` `level` The level.
`protected int` `mask` The bit mask to get the index from the hash code.
`protected int` `size` The number of occupied slots, excluding the zero key (if any).
`protected boolean` `zeroKey` Whether the zero key is used.

### Constructor Summary

Constructors
Constructor and Description
`HashBase()`

### Method Summary

Methods
`protected void` `checkSizeRemove()` Check the size before removing an entry.
`protected int` `getIndex(int hash)` Calculate the index for this hash code.
`protected abstract void` `rehash(int newLevel)` Increase the size of the underlying table and re-distribute the elements.
`protected void` `reset(int newLevel)` Clear the map and reset the level to the specified value.
`int` `size()` Get the size of the map.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### mask

    protected int mask

The bit mask to get the index from the hash code.

#### len

    protected int len

The number of slots in the table.

#### size

    protected int size

The number of occupied slots, excluding the zero key (if any).

#### deletedCount

    protected int deletedCount

The number of deleted slots.

#### level

    protected int level

The level. The number of slots is 2 ^ level.

#### zeroKey

    protected boolean zeroKey

Whether the zero key is used.

### Constructor Detail

#### HashBase

    public HashBase()

### Method Detail

#### rehash

    protected abstract void rehash(int newLevel)

Increase the size of the underlying table and re-distribute the elements.

Parameters:
  `newLevel` - the new level

#### size

    public int size()

Get the size of the map.

Returns:
  the size

#### checkSizeRemove

    protected void checkSizeRemove()

Check the size before removing an entry. This method resizes the map if required.

#### reset

    protected void reset(int newLevel)

Clear the map and reset the level to the specified value.

Parameters:
  `newLevel` - the new level

#### getIndex

    protected int getIndex(int hash)

Calculate the index for this hash code.

Parameters:
  `hash` - the hash code
Returns:
  the index