在 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% 确定字符串不等于。
在 scala 中比较对象哪个更快:
a) 使用 equals(==) 方法或
比较两个 case class 对象b) 从对象的成员变量中创建散列,然后比较该散列。
我认为 equals 方法应该更快,但我的朋友争辩说,如果我们创建一串成员变量值并生成其散列并比较它,它会更快,因为它将进行一次比较而不是 n 次比较,它在平等的方法。 n 是变量的数量。
这两个字符串具有相同的哈希码:
"G9tX"
"FZ79"
hashcode: 2173622
所以你必须使用equals
来比较对象。字符串的话,如果hashcode
兑现了,可以先比较一下。在这种情况下,如果哈希码不相等,您可以 100% 确定字符串不等于。