Enum MurmurHash3

java.lang.Object
java.lang.Enum<MurmurHash3>
org.elasticsearch.common.hash.MurmurHash3
All Implemented Interfaces:
java.io.Serializable, java.lang.Comparable<MurmurHash3>, java.lang.constant.Constable

public enum MurmurHash3
extends java.lang.Enum<MurmurHash3>
MurmurHash3 hashing functions.
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  MurmurHash3.Hash128
    A 128-bits hash.

    Nested classes/interfaces inherited from class java.lang.Enum

    java.lang.Enum.EnumDesc<E extends java.lang.Enum<E>>
  • Method Summary

    Modifier and Type Method Description
    protected static long fmix​(long k)  
    protected static long getblock​(byte[] key, int offset, int index)  
    static MurmurHash3.Hash128 hash128​(byte[] key, int offset, int length, long seed, MurmurHash3.Hash128 hash)
    Compute the hash of the MurmurHash3_x64_128 hashing function.
    static long murmur64​(long h)
    A 64-bit variant which accepts a long to hash, and returns the 64bit long hash.
    static MurmurHash3 valueOf​(java.lang.String name)
    Returns the enum constant of this type with the specified name.
    static MurmurHash3[] values()
    Returns an array containing the constants of this enum type, in the order they are declared.

    Methods inherited from class java.lang.Enum

    clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Method Details

    • values

      public static MurmurHash3[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static MurmurHash3 valueOf​(java.lang.String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
      java.lang.NullPointerException - if the argument is null
    • getblock

      protected static long getblock​(byte[] key, int offset, int index)
    • fmix

      protected static long fmix​(long k)
    • hash128

      public static MurmurHash3.Hash128 hash128​(byte[] key, int offset, int length, long seed, MurmurHash3.Hash128 hash)
      Compute the hash of the MurmurHash3_x64_128 hashing function. Note, this hashing function might be used to persist hashes, so if the way hashes are computed changes for some reason, it needs to be addressed (like in BloomFilter and MurmurHashField).
    • murmur64

      public static long murmur64​(long h)
      A 64-bit variant which accepts a long to hash, and returns the 64bit long hash. This is useful if the input is already in long (or smaller) format and you don't need the full 128b width and flexibility of hash128(byte[], int, int, long, Hash128) Given the limited nature of this variant, it should be faster than the 128b version when you only need 128b (many fewer instructions)