Class Murmur3F

java.lang.Object
org.greenrobot.essentials.hash.Murmur3F
All Implemented Interfaces:
Checksum, Checksum128

public class Murmur3F extends Object implements Checksum128
Murmur3F (MurmurHash3_x64_128)
  • Field Details

    • primitiveArrayUtils

      private static PrimitiveArrayUtils primitiveArrayUtils
    • C1

      private static final long C1
      See Also:
    • C2

      private static final long C2
      See Also:
    • seed

      private final long seed
    • h1

      private long h1
    • h2

      private long h2
    • length

      private int length
    • partialPos

      private int partialPos
    • partialK1

      private long partialK1
    • partialK2

      private long partialK2
    • finished

      private boolean finished
    • finishedH1

      private long finishedH1
    • finishedH2

      private long finishedH2
  • Constructor Details

    • Murmur3F

      public Murmur3F()
    • Murmur3F

      public Murmur3F(int seed)
  • Method Details

    • update

      public void update(int b)
      Specified by:
      update in interface Checksum
    • updateLongLE

      public void updateLongLE(long value)
      Special update method to hash long values very efficiently using Java's native little endian (LE) byte order. Note, that you cannot mix this with other (previous) hash updates, because it only supports 8-bytes alignment.
    • updateLongBE

      public void updateLongBE(long value)
      Consider updateLongLE(long) for better performance if you do not rely on big endian (BE) byte order.
    • update

      public void update(byte[] b)
      Specified by:
      update in interface Checksum
    • update

      public void update(byte[] b, int off, int len)
      Specified by:
      update in interface Checksum
    • applyKs

      private void applyKs(long k1, long k2)
    • checkFinished

      private void checkFinished()
    • fmix64

      private long fmix64(long k)
    • getValue

      public long getValue()
      Specified by:
      getValue in interface Checksum
    • getValueHigh

      public long getValueHigh()
      Returns the higher 64 bits of the 128 bit hash.
      Specified by:
      getValueHigh in interface Checksum128
    • getValueBigInteger

      public BigInteger getValueBigInteger()
      Positive value.
      Specified by:
      getValueBigInteger in interface Checksum128
    • getValueHexString

      public String getValueHexString()
      Padded with leading 0s to ensure length of 32.
      Specified by:
      getValueHexString in interface Checksum128
    • getPaddedHexString

      private String getPaddedHexString(long value)
    • getValueBytesBigEndian

      public byte[] getValueBytesBigEndian()
      Description copied from interface: Checksum128
      Big endian is the default in Java / network byte order.
      Specified by:
      getValueBytesBigEndian in interface Checksum128
    • getValueBytesLittleEndian

      public byte[] getValueBytesLittleEndian()
      Description copied from interface: Checksum128
      Big endian is used by most machines natively.
      Specified by:
      getValueBytesLittleEndian in interface Checksum128
    • reset

      public void reset()
      Specified by:
      reset in interface Checksum