Package org.h2.dev.hash

# Class MinimalPerfectHash.StringHash

java.lang.Object
org.h2.dev.hash.MinimalPerfectHash.StringHash

All Implemented Interfaces:
  `MinimalPerfectHash.UniversalHash<String>`

Enclosing class:
  MinimalPerfectHash<K>

public static class MinimalPerfectHash.StringHash extends Object implements MinimalPerfectHash.UniversalHash<String>
A sample hash implementation for integer keys.

## Constructor Summary

Constructors
Constructor
Description
`StringHash()`

## Method Summary

Modifier and Type
Method
Description
`static int`
`getFastHash(String o, int index, int seed)`
A cryptographically weak hash function.
`static int`
`getSipHash24(byte[] b, int start, int end, long k0, long k1)`
A cryptographically relatively secure hash function.
`static int`
`getSipHash24(String o, long k0, long k1)`
A cryptographically relatively secure hash function.
`int`
`hashCode(String o, int index, int seed)`
Calculate the hash of the given object.

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

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

## Constructor Details

### StringHash

public StringHash()

## Method Details

### hashCode

public int hashCode(String o, int index, int seed)
Description copied from interface: `MinimalPerfectHash.UniversalHash`
Calculate the hash of the given object.

Specified by:
  `hashCode` in interface `MinimalPerfectHash.UniversalHash<String>`
Parameters:
  `o` - the object
  `index` - the hash function index (index 0 is used first, so the method should be very fast with index 0; index 1 and so on are only called when really needed)
  `seed` - the random seed (always the same for a hash table)
Returns:
  the hash value

### getFastHash

public static int getFastHash(String o, int index, int seed)
A cryptographically weak hash function. It is supposed to be fast.

Parameters:
  `o` - the string
  `index` - the hash function index
  `seed` - the seed
Returns:
  the hash value

### getSipHash24

public static int getSipHash24(String o, long k0, long k1)
A cryptographically relatively secure hash function. It is supposed to protected against hash-flooding denial-of-service attacks.

Parameters:
  `o` - the string
  `k0` - key 0
  `k1` - key 1
Returns:
  the hash value

### getSipHash24

public static int getSipHash24(byte[] b, int start, int end, long k0, long k1)
A cryptographically relatively secure hash function. It is supposed to protected against hash-flooding denial-of-service attacks.

Parameters:
  `b` - the data
  `start` - the start position
  `end` - the end position plus one
  `k0` - key 0
  `k1` - key 1
Returns:
  the hash value