2016-10-16 3 views
1

高速スカラ場合クラスのオブジェクトを比較するためのものである:高速Scalaでオブジェクトを比較するためのものであるA)==(等しい)メソッドまたはb)等化ハッシュ値

A)を使用して2つのケースのクラスのオブジェクトを比較します(==)メソッドまたは

b)objectのメンバー変数からハッシュを作成し、そのハッシュを比較します。

私はメンバー変数の値の文字列を作成してハッシュを生成し、それを比較すると高速であると私の友人は主張しています。方法。 nは変数の数です。

+0

'=='参照を比較しますか?それはハッシュに相当するのではないでしょうか? N個の変数の文字列を生成し、そのハッシュを計算することは、N個のブール比較より計算上複雑であると主張することができます。 –

+0

@ cricket_007 in Scala、==は参照平等ではなく、 – fxlae

+0

@JFoケースクラスのためだけに、そうですね。 –

答えて

2

これらの2つの文字列が同じハッシュコードを持つ:

"G9tX" 
"FZ79" 
hashcode: 2173622 

は、だから、オブジェクトと比較するequalsを使用する必要があります。文字列の場合、hashcodeがキャッシュされている場合は、まずそれらを比較できます。この場合、ハッシュコードが等しくない場合、文字列が等しくないことを100%確かめることができます。

関連する問題