-1

オブジェクトのツリーを指定して、構造全体でメッセージ ダイジェストまたはハッシュを実行するライブラリを探しています。

メソッドに渡されたオブジェクトが変更されるかどうかを確認したい (このオブジェクトには、オブジェクトを含む他のオブジェクトが含まれるなど - 不変のものはありません)。

呼び出し中に構造内のオブジェクトの状態が変化するかどうかを確認する方法はありますか?

4

3 に答える 3

1

ツリー内のすべてのオブジェクトに対して hashCode() を実装できます。ルート オブジェクトの hashCode が変更された場合、ツリー内のオブジェクトの状態が変更されたことがわかります。

于 2009-08-31T12:31:16.613 に答える
0

ハッシュを使用して変更を検出する際の問題は、絶対的な「いいえ」の答えが得られないことです。おそらく何かが変更されていないことを示しているだけです。

いくつかの変更を見逃しても問題ない場合は、ツリーをハッシュしてください。

そうでない場合は、他のオプションを検討する必要がありますが、何か提案する前に、状況について詳しく聞く必要があります.

于 2009-08-31T12:49:25.440 に答える
0

私は、JRE で提供される標準の MessageDigest と MD5 を使用してそれを行いました。

1 つのリンク

衝突に関しては、同じ MD5 を持つ 2 つのオブジェクトがある場合、それらが同じである可能性があることがわかっているので、完全に再帰的な比較を行います。それでも、衝突が発生する可能性は低く、この手法を実装する価値は十分にあります。

于 2009-08-31T12:49:36.360 に答える