Array [Byte] hashCode()每次在Scala中都返回不同的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Array [Byte] hashCode()每次在Scala中都返回不同的值相关的知识,希望对你有一定的参考价值。
答案
这是因为Array的hashCode
不依赖于其值(因为它是可变的],但是它对于每个实例都是唯一的,它使用其内存地址。因此,执行两次代码会创建两个具有不同内存地址和哈希码的数组。
解决方案是使用不变的结构,例如List。
"ABC".getBytes().toList.hashCode()
// res: Int = 1984571950
"ABC".getBytes().toList.hashCode()
// res: Int = 1984571950
以上是关于Array [Byte] hashCode()每次在Scala中都返回不同的值的主要内容,如果未能解决你的问题,请参考以下文章
将 Scala 中的任何类型转换为 Array[Byte] 并返回