Array [Byte] hashCode () каждый раз возвращает разные значения в Scala - PullRequest
2 голосов
/ 25 марта 2020

Почему .hashCode() возвращает разные значения для одного и того же входа?

"ABC".getBytes().hashCode()

enter image description here

1 Ответ

4 голосов
/ 25 марта 2020

Это потому, что hashCode массива не зависит от его значений (потому что оно изменчиво) , но оно уникально для каждого экземпляра, оно использует его адрес памяти. Таким образом, выполнение кода дважды создает два разных массива с разными адресами памяти, которые имеют разные коды ha sh.

Решение заключается в использовании неизменяемой структуры, такой как Список .

"ABC".getBytes().toList.hashCode()
// res: Int = 1984571950

"ABC".getBytes().toList.hashCode()
// res: Int = 1984571950
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...