問題タブ [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.
java - Java で equals と hashCode をオーバーライドする場合、どのような問題を考慮する必要がありますか?
equals
andをオーバーライドする際に考慮しなければならない問題/落とし穴は何hashCode
ですか?
java - コレクションの hashCode メソッドの最適な実装
コレクションのメソッドの最適な実装をどのように決定しますかhashCode()
(equals メソッドが正しくオーバーライドされていると仮定して)。
java - オブジェクトのアドレスから hashCode() を計算する方法は?
Java にVertex
は、Java3D クラスのサブクラスがありPoint3f
ます。座標の値に基づいてPoint3f
計算するようになりましたが、私のクラスではより厳密にしたいと考えています。2 つの頂点が等しいのは、それらが同じオブジェクトである場合のみです。ここまでは順調ですね:equals()
Vertex
これが の契約に違反していることはわかってequals()
いますが、頂点を他の頂点と比較するだけなので、これは問題ではありません。
ここで、頂点を に配置できるようにするにHashMap
は、hashCode()
メソッドは と一致する結果を返さなければなりませんequals()
。現在それを行っていますが、おそらく戻り値は のフィールドに基づいているため、同じ座標を持つPoint3f
異なるオブジェクトに対してハッシュ衝突が発生します。Vertex
したがって、のフィールドhashCode()
から計算するのではなく、オブジェクトのアドレスに基づいて を使用したいと思います。クラスがこれを行うことはVertex
知っていますが、メソッドをオーバーライドするため、そのメソッドを呼び出すことはできません。Object
hashCode()
Point3f
だから、実際に私の質問は2つあります:
- 私はそのような浅いものが欲しい
equals()
ですか? - はいの場合、ハッシュコードを計算するためのオブジェクトのアドレスを取得するにはどうすればよいですか?
編集:私は何かを考えました...int
オブジェクトの作成時にランダムな値を生成し、それをハッシュコードに使用できます。それは良い考えですか?なぜだめですか)?
java - String.hashCode() は VM、JDK、OS 間で移植可能ですか?
最近興味深い問題が出てきました。MD5 暗号化のソルト ソースとして使用しているコードに遭遇しhashCode()
ましたが、これにより疑問が生じます:hashCode()
異なる VM、異なる JDK バージョン、およびオペレーティング システムで同じオブジェクトに対して同じ値を返すでしょうか? 保証されていなくても、今までに何か変わったことはありますか?
編集:もちろん、オーバーライドできるString.hashCode()
より一般的な ではなく、本当に意味します。Object.hashCode()
javascript - JavaScriptにハッシュコード関数はありますか?
基本的に、私はユニークなオブジェクトのオブジェクト、セットを作成しようとしています。プロパティ名のオブジェクトでJavaScriptオブジェクトを使用するという素晴らしいアイデアがありました。そのような、
これは、ある程度までは機能します。文字列と数値でうまく機能しますが、他のオブジェクトでは、それらはすべて同じ値に「ハッシュ」され、同じプロパティにアクセスするように見えます。オブジェクトの一意のハッシュ値を生成する方法はありますか?文字列と数値はどのように機能しますか?同じ動作をオーバーライドできますか?
java - HashCode なしのエラー、Equals eclipse
プロジェクト内のクラスが hashCode または equals メソッドを実装していないかどうかを教えてくれる、非常に具体的な Eclipse プラグインを探しています。
そのようなプラグインを知っている人はいますか?
ありがとう
javascript - 2 つの JavaScript オブジェクトが等しいかどうかを判断する方法は?
厳密な等価演算子は、2 つのオブジェクトタイプが等しいかどうかを示します。しかし、 Javaのハッシュ コード値のように、2 つのオブジェクトが等しいかどうかを判断する方法はありますか?
スタック オーバーフローの質問JavaScript には任意の種類の hashCode 関数がありますか? この質問に似ていますが、より学術的な回答が必要です。上記のシナリオは、それが必要な理由を示しており、同等のソリューションがあるかどうか疑問に思っています。
.net - GetHashCode をオーバーライドするための最適なアルゴリズムは何ですか?
.NET では、GetHashCode
メソッドは .NET 基本クラス ライブラリ全体の多くの場所で使用されます。これを適切に実装することは、コレクション内の項目をすばやく見つけたり、同等性を判断したりするときに特に重要です。
GetHashCode
パフォーマンスを低下させないように、カスタム クラスに実装する方法に関する標準アルゴリズムまたはベスト プラクティスはありますか?
.net - GUID のセットをハッシュする最速の方法
n 個の GUID のリストがあり、それらを 1 つの値にハッシュする必要があります。この値は、Guid オブジェクトのサイズまたは Int32 のサイズである可能性があります。実際には問題ではありませんが、統計的に一意である必要があります (おそらく MD5 に似ているとします)。
したがって、1 つのアプローチは、それらを並べ替え、バイトを連結し、すべてのバイトの MD5 ハッシュを取得することですが、これはそれほど迅速ではありません。
別のアイデア: 構成オブジェクトの GetHashCode メソッドを、構成オブジェクトのハッシュ コードの XOR として実装することは、.NET ではかなり標準的な方法であることに気付きました。したがって、GUID のリストを XOR することは数学的に賢明でしょうか?
どんなアイデアでも大歓迎です!