gpt4 book ai didi

Scala 设置哈希码

转载 作者:行者123 更新时间:2023-12-05 09:00:03 24 4
gpt4 key购买 nike

假设我们在 Scala 中有三组字符串。一个具有元素 A、B、C。二有元素B,C,D。 Three 有元素 J、K、I。

我的第一个问题是,有没有办法让这些集合中任意两个集合的哈希码相同?我的第二个问题是,如果我将 D 添加到 One 并将 A 添加到 Two 以获得新的集合 One.n 和 Two.n,One.n 和 Two.n 的哈希码是否相同?

最佳答案

问题 1) 总的来说是的,完全有可能。哈希码的字节数有限。 Set 可以是任何大小。所以哈希码不能是唯一的(尽管它们通常是唯一的)。

问题 2) 为什么不试试呢?

scala> val One = collection.mutable.Set[String]("A", "B", "C")
One: scala.collection.mutable.Set[String] = Set(A, B, C)

scala> One.hashCode
res3: Int = 1491157345

scala> val Two = collection.mutable.Set[String]("B", "C", "D")
Two: scala.collection.mutable.Set[String] = Set(B, D, C)

scala> Two.hashCode
res4: Int = -967442916

scala> One += "D"
res5: One.type = Set(A, B, D, C)

scala> Two += "A"
res6: Two.type = Set(B, D, A, C)

scala> One.hashCode
res7: Int = -232075924

scala> Two.hashCode
res8: Int = -232075924

所以,是的,正如您所料,因为您希望 == 方法对这两个实例都是正确的。

关于Scala 设置哈希码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com