Enum 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 Detail

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