問題タブ [hashcode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
11 に答える
595062 参照

java - Java で equals と hashCode をオーバーライドする場合、どのような問題を考慮する必要がありますか?

equalsandをオーバーライドする際に考慮しなければならない問題/落とし穴は何hashCodeですか?

0 投票する
20 に答える
259600 参照

java - コレクションの hashCode メソッドの最適な実装

コレクションのメソッドの最適な実装をどのように決定しますかhashCode()(equals メソッドが正しくオーバーライドされていると仮定して)。

0 投票する
7 に答える
1797 参照

java - オブジェクトのアドレスから hashCode() を計算する方法は?

Java にVertexは、Java3D クラスのサブクラスがありPoint3fます。座標の値に基づいてPoint3f計算するようになりましたが、私のクラスではより厳密にしたいと考えています。2 つの頂点が等しいのは、それらが同じオブジェクトである場合のみです。ここまでは順調ですね:equals()Vertex

これが の契約に違反していることはわかってequals()いますが、頂点を他の頂点と比較するだけなので、これは問題ではありません。

ここで、頂点を に配置できるようにするにHashMapは、hashCode()メソッドは と一致する結果を返さなければなりませんequals()。現在それを行っていますが、おそらく戻り値は のフィールドに基づいているため、同じ座標を持つPoint3f異なるオブジェクトに対してハッシュ衝突が発生します。Vertex

したがって、のフィールドhashCode()から計算するのではなく、オブジェクトのアドレスに基づいて を使用したいと思います。クラスがこれを行うことはVertex知っていますが、メソッドをオーバーライドするため、そのメソッドを呼び出すことはできません。ObjecthashCode()Point3f

だから、実際に私の質問は2つあります:

  • 私はそのような浅いものが欲しいequals()ですか?
  • はいの場合、ハッシュコードを計算するためのオブジェクトのアドレスを取得するにはどうすればよいですか?

編集:私は何かを考えました...intオブジェクトの作成時にランダムな値を生成し、それをハッシュコードに使用できます。それは良い考えですか?なぜだめですか)?

0 投票する
5 に答える
640 参照

java - String.hashCode() は VM、JDK、OS 間で移植可能ですか?

最近興味深い問題が出てきました。MD5 暗号化のソルト ソースとして使用しているコードに遭遇しhashCode()ましたが、これにより疑問が生じます:hashCode()異なる VM、異なる JDK バージョン、およびオペレーティング システムで同じオブジェクトに対して同じ値を返すでしょうか? 保証されていなくても、今までに何か変わったことはありますか?

編集:もちろん、オーバーライドできるString.hashCode()より一般的な ではなく、本当に意味します。Object.hashCode()

0 投票する
20 に答える
237661 参照

javascript - JavaScriptにハッシュコード関数はありますか?

基本的に、私はユニークなオブジェクトのオブジェクト、セットを作成しようとしています。プロパティ名のオブジェクトでJavaScriptオブジェクトを使用するという素晴らしいアイデアがありました。そのような、

これは、ある程度までは機能します。文字列と数値でうまく機能しますが、他のオブジェクトでは、それらはすべて同じ値に「ハッシュ」され、同じプロパティにアクセスするように見えます。オブジェクトの一意のハッシュ値を生成する方法はありますか?文字列と数値はどのように機能しますか?同じ動作をオーバーライドできますか?

0 投票する
2 に答える
510 参照

java - HashCode なしのエラー、Equals eclipse

プロジェクト内のクラスが hashCode または equals メソッドを実装していないかどうかを教えてくれる、非常に具体的な Eclipse プラグインを探しています。

そのようなプラグインを知っている人はいますか?

ありがとう

0 投票する
78 に答える
701988 参照

javascript - 2 つの JavaScript オブジェクトが等しいかどうかを判断する方法は?

厳密な等価演算子は、2 つのオブジェクトタイプが等しいかどうかを示します。しかし、 Javaのハッシュ コード値のように、2 つのオブジェクトが等しいかどうかを判断する方法はありますか?

スタック オーバーフローの質問JavaScript には任意の種類の hashCode 関数がありますか? この質問に似ていますが、より学術的な回答が必要です。上記のシナリオは、それが必要な理由を示しており、同等のソリューションがあるかどうか疑問に思っています。

0 投票する
22 に答える
258494 参照

.net - GetHashCode をオーバーライドするための最適なアルゴリズムは何ですか?

.NET では、GetHashCodeメソッドは .NET 基本クラス ライブラリ全体の多くの場所で使用されます。これを適切に実装することは、コレクション内の項目をすばやく見つけたり、同等性を判断したりするときに特に重要です。

GetHashCodeパフォーマンスを低下させないように、カスタム クラスに実装する方法に関する標準アルゴリズムまたはベスト プラクティスはありますか?

0 投票する
2 に答える
2114 参照

.net - GUID のセットをハッシュする最速の方法

n 個の GUID のリストがあり、それらを 1 つの値にハッシュする必要があります。この値は、Guid オブジェクトのサイズまたは Int32 のサイズである可能性があります。実際には問題ではありませんが、統計的に一意である必要があります (おそらく MD5 に似ているとします)。

したがって、1 つのアプローチは、それらを並べ替え、バイトを連結し、すべてのバイトの MD5 ハッシュを取得することですが、これはそれほど迅速ではありません。

別のアイデア: 構成オブジェクトの GetHashCode メソッドを、構成オブジェクトのハッシュ コードの XOR として実装することは、.NET ではかなり標準的な方法であることに気付きました。したがって、GUID のリストを XOR することは数学的に賢明でしょうか?

どんなアイデアでも大歓迎です!