Объект scala.util.hashing.MurmurHash3
объект MurmurHash3 extends MurmurHash3
Члены типа
класс ArrayHashing[T] extends Hashing[Массив[T]]
Члены значения
final def !=(arg0: Любой): Булево
Тестирование двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае — false.
- Определяющие классы
- AnyRef → Любой
final def ##(): Целое
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов он возвращает значение хеша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## будет генерировать одинаковое значение хеша для каждого из них. Для null возвращает код хеша, где null.hashCode вызывает NullPointerException.
- возвращает
значение хеша, согласованное с ==
- Определяющие классы
- AnyRef → Любой
final def ==(arg0: Любой): Булево
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект получателя эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Любой
def arrayHash[T](a: Массив[T]): Целое
final def arrayHash[T](a: Массив[T], seed: Целое): Целое
Вычисление хеша массива. Возможные значения хешей диапазонов распознаются для создания хеша, совместимого с rangeHash.
- Определяющие классы
- MurmurHash3
def arrayHashing[T]: ArrayHashing[T]
final val arraySeed: Целое(1007110753)
final def asInstanceOf[T0]: T0
Приведение объекта получателя к типу T0.
Обратите внимание, что успех приведения типов во время выполнения зависит от семантики стирания в Scala. Таким образом, выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] не выбросит. В последнем примере, из-за того, что аргумент типа стирается в процессе компиляции, нельзя проверить, соответствуют ли содержимое списка запрошенному типу.
- возвращает
объект получателя.
- Определяющие классы
- Любой
- Исключения
ClassCastExceptionесли объект получателя не является экземпляром стирания типаT0.
def bytesHash(data: Массив[Байт]): Целое
final def bytesHash(data: Массив[Байт], seed: Целое): Целое
Вычисление хеша массива байтов. Быстрее, чем arrayHash, потому что он хеширует 4 байта за раз. Обратите внимание, что результат несовместим с arrayHash!
- Определяющие классы
- MurmurHash3
def bytesHashing: Hashing[Массив[Байт]]
def clone(): AnyRef
Создание копии объекта получателя.
По умолчанию реализация метода clone зависит от платформы.
- возвращает
копию объекта получателя.
final def eq(arg0: AnyRef): Булево
Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).
Метод eq реализует отношение эквивалентности на не-null экземплярах AnyRef, и имеет три дополнительных свойства:
-
Он согласован: для любых не-null экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-null экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true.При переопределении методов equals или hashCode важно обеспечить, чтобы их поведение было согласованно с равенством ссылок. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое значение хэша (o1.hashCode == o2.hashCode).
- возвращает
trueесли аргумент является ссылкой на объект-получатель;falseв противном случае.
- Классы определения
- AnyRef
def equals(arg0: AnyRef): Boolean
Метод равенства для ссылочных типов. Реализация по умолчанию делегирует в eq.
См. также equals в scala.Any.
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Классы определения
- AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда к объекту больше нет ссылок.
Подробности о том, когда и если вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.
final def finalizeHash(hash: Int, length: Int): Int
Завершает вычисление хэша, включая длину и обеспечивая равномерное распределение битов.
- Классы определения
- MurmurHash3
final def getClass(): Class[_ <: AnyRef]
Возвращает представление класса объекта во время выполнения.
- возвращает
объект класса, соответствующий типу объекта во время выполнения.
def hashCode(): Int
Метод hashCode для ссылочных типов. Смотрите hashCode в scala.Any.
- возвращает
значение хэша для этого объекта.
final def indexedSeqHash(a: collection.IndexedSeq[Any], seed: Int): Int
Вычисляет хэш IndexedSeq. Потенциальные хэши диапазонов распознаются для создания хэша, совместимого с rangeHash.
- Классы определения
- MurmurHash3
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки зависит от стирания типов Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за стирания аргумента типа во время компиляции невозможно проверить, соответствуют ли элементы списка указанному типу.
- возвращает
trueесли объект-получатель является экземпляром стирания типаT0;falseв противном случае.
- Классы определения
- Any
final def listHash(xs: collection.immutable.List[_], seed: Int): Int
Вычисляет хэш списка. Потенциальные хэши диапазонов распознаются для создания хэша, совместимого с rangeHash.
- Классы определения
- MurmurHash3
def mapHash(xs: Map[_, _]): Int
final val mapSeed: Int
final def mix(hash: Int, data: Int): Int
Добавляет блок данных в промежуточное значение хэша.
- Классы определения
- MurmurHash3
final def mixLast(hash: Int, data: Int): Int
По желанию может быть использован как последняя стадия смешивания. Немного быстрее, чем mix, так как не выполняет дальнейшего смешивания полученного хэша. Для последнего элемента это не обязательно, так как хэш полностью перемешивается во время финализации.
- Классы определений
- MurmurHash3
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Классы определений
- AnyRef
final def notify(): Unit
Разбуживает один поток, ожидающий монитора объекта-получателя.
- Классы определений
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
final def notifyAll(): Unit
Разбуживает все потоки, ожидающие монитора объекта-получателя.
- Классы определений
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
def orderedHash(xs: IterableOnce[Any]): Int
final def orderedHash(xs: IterableOnce[Any], seed: Int): Int
Вычисление хэша, зависящего от порядка аргументов. Признаны хэши потенциальных диапазонов, которые генерируют хэш, совместимый с rangeHash.
- Классы определений
- MurmurHash3
def orderedHashing: Hashing[IterableOnce[Any]]
def productHash(x: Product): Int
final def productHash(x: Product, seed: Int, ignorePrefix: Boolean = false): Int
Вычисление хэша продукта
- Классы определений
- MurmurHash3
def productHashing: Hashing[Product]
final val productSeed: Int(-889275714)
def rangeHash(start: Int, step: Int, last: Int): Int
final def rangeHash(start: Int, step: Int, last: Int, seed: Int): Int
Вычисление хэша диапазона с не менее чем 2 элементами. Диапазоны с меньшим количеством элементов должны использовать seqHash. Параметр last должен быть фактическим последним элементом, производимым диапазоном, а не номинальным end.
- Классы определений
- MurmurHash3
def seqHash(xs: collection.Seq[_]): Int
final val seqSeed: Int
def setHash(xs: Set[_]): Int
final val setSeed: Int
def stringHash(x: String): Int
final def stringHash(str: String, seed: Int): Int
Вычисление хэша строки
- Классы определений
- MurmurHash3
def stringHashing: Hashing[String]
final val stringSeed: Int(-137723950)
final val symmetricSeed: Int(-1248659538)
final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
def toString(): String
Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.
- returns
строковое представление объекта.
- Definition Classes
- AnyRef → Any
final val traversableSeed: Int(-415593707)
def unorderedHash(xs: IterableOnce[Any]): Int
final def unorderedHash(xs: IterableOnce[Any], seed: Int): Int
Вычисляет хэш, который симметричен относительно своих аргументов — то есть хэш, где порядок появления элементов не имеет значения. Это полезно для хэширования множеств, например.
- Definition Classes
- MurmurHash3
def unorderedHashing: Hashing[IterableOnce[Any]]
final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Unit
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/util/hashing/MurmurHash3$.html
Реализация алгоритма MurmurHash 3 (MurmurHash3_x86_32) Остина Эпплби. Этот объект содержит методы, которые хешируют значения различных типов, а также средства для создания
Hashingобъектов.Этот алгоритм предназначен для генерации хорошо распределённых некриптографических хешей. Он разработан для хеширования данных в 32-битных блоках (int).
Метод mix необходимо вызывать на каждом шаге для обновления промежуточного значения хеша. Для последнего блока для включения в хеш можно использовать mixLast, что немного быстрее. Наконец, для вычисления конечного значения хеша необходимо вызвать finalizeHash.
Основан на более раннем коде MurmurHash3 от Рекса Керра, но алгоритм MurmurHash3 был изменён его создателем Остином Эпплби для устранения некоторых уязвимостей и повышения производительности. Это представляет собой последнюю и, предположительно, окончательную версию алгоритма (ревизия 136).
https://github.com/aappleby/smhasher