## org.h2.dev.hash
Class IntPerfectHash

    java.lang.Object
      org.h2.dev.hash.IntPerfectHash

    public class IntPerfectHash

extends java.lang.Object

A minimum perfect hash function tool. It needs about 2.2 bits per key.

Nested Class Summary
`static class` `IntPerfectHash.BitArray` A helper class for bit arrays.

Constructor Summary
`IntPerfectHash(byte[] data)` Create a hash object to convert keys to hashes.

Method Summary

`static

`<K> byte[]`

`

`generate(java.util.ArrayList<java.lang.Integer> list)`
Generate the minimal perfect hash function data from the given list.

`int` `get(int x)` Calculate the hash value for the given key.
`byte[]` `getData()` Get the hash function description.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### IntPerfectHash

    public IntPerfectHash(byte[] data)

  Create a hash object to convert keys to hashes.

  Parameters:
    `data` - the data returned by the generate method

Method Detail

### getData

    public byte[] getData()

  Get the hash function description.

  Returns:
    the data

### get

    public int get(int x)

  Calculate the hash value for the given key.

  Parameters:
    `x` - the key
  Returns:
    the hash value

### generate

    public static <K> byte[] generate(java.util.ArrayList<java.lang.Integer> list)

  Generate the minimal perfect hash function data from the given list.

  Parameters:
    `list` - the data
  Returns:
    the hash function description