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
     
  • 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