在 scala 中比较 case class 对象哪个更快:a) equals(==) 方法或 b) 等同哈希值

Which is faster for comparing case class object in scala : a) equals(==) method or b) equating hash values

在 scala 中比较对象哪个更快:

a) 使用 equals(==) 方法或

比较两个 case class 对象

b) 从对象的成员变量中创建散列,然后比较该散列。

我认为 equals 方法应该更快,但我的朋友争辩说,如果我们创建一串成员变量值并生成其散列并比较它,它会更快,因为它将进行一次比较而不是 n 次比较,它在平等的方法。 n 是变量的数量。

这两个字符串具有相同的哈希码:

"G9tX"
"FZ79"
hashcode: 2173622

所以你必须使用equals来比较对象。字符串的话,如果hashcode兑现了,可以先比较一下。在这种情况下,如果哈希码不相等,您可以 100% 确定字符串不等于。