問題タブ [hashmap]
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 - AbstractCollection が equals() を実装しないのはなぜですか?
知ってた :
出力します:
AbstractCollection
これは、 (HashMap$Values
から継承された) がオーバーライドしないという事実によって引き起こされます#equals()
。
なぜこれがそうなのか分かりますか?
stl - SGI STL hash_map の使用方法
サイトからダウンロードした SGI STL 実装を使用しようとしています。約 5,000,000 件のレコードを保存する必要があるため、ハッシュマップを使用したいと考えていますが、それは適切なはずです。非常に迅速にアクセスできるようにする必要があります。を試してみましstedext::hash_map
たが、初期サイズを設定できなかったため、非常に遅くなりました。ところで、それは可能ですか?MS Visual Studio に追加のパスを追加すると、SGI サイトの例をコンパイルすることさえできなくなります。エラー メッセージが表示されます。
他の誰かがそのような問題に直面しましたか?
algorithm - ハッシュルックアップとバイナリ検索では、どちらが高速ですか?
オブジェクトの静的セット (一度読み込まれるとほとんど変更されないという意味での静的) が与えられた場合、最適なパフォーマンスで繰り返し同時ルックアップが必要な場合、HashMap
カスタム コンパレータを使用したバイナリ検索を使用する配列と、どちらが優れているでしょうか?
答えはオブジェクトまたは構造体型の関数ですか? ハッシュおよび/または等価関数のパフォーマンス? ハッシュの一意性? リストサイズ? Hashset
サイズ/セットサイズ?
私が検討しているセットのサイズは、500k から 10m の範囲です (その情報が役立つ場合)。
私は C# の答えを探していますが、真の数学的答えは言語にはないと思うので、そのタグは含めません。ただし、C# 固有の注意事項がある場合は、その情報が必要です。
javascript - 同等のJavaScriptハッシュマップ
この回答に関するアップデート3で明らかにされているように、この表記法は次のとおりです。
実際にはオブジェクトをハッシュしませんX
; 実際にX
は、文字列に変換し(オブジェクトの場合、またはさまざまなプリミティブ型のその他の組み込み変換を介して.toString()
)、ハッシュせずにその文字列を「hash
」で検索します。オブジェクトの同等性もチェックされません-2つの異なるオブジェクトが同じ文字列変換を持っている場合、それらは互いに上書きするだけです。
これを考えると、JavaScriptでのハッシュマップの効率的な実装はありますか?
(たとえば、2番目のGoogleの結果はjavascript hashmap
、任意の操作に対してO(n)である実装を生成します。他のさまざまな結果は、同等の文字列表現を持つ異なるオブジェクトが互いに上書きするという事実を無視します。
java - HashMap 初期化パラメーター (ロード / 初期容量)
N 個のアイテムに対して効率的なHashMap
/ベースの構造を作成するには、どの値を渡す必要がありますか?HashMap
ではArrayList
、効率的な数は N です (N は将来の成長を既に想定しています)。のパラメータは何HashMap
ですか? ((int)(N * 0.75d), 0.75d)? もっと?以下?負荷率を変更するとどのような影響がありますか?
java - Java オブジェクトへの MATLAB 構造体の格納
MATLAB で Java HashMap を使用しています
そして、文字列、配列、行列はシームレスに機能しますが、
構造体はそうではありません
構造体で機能させる最も簡単でエレガントな方法は何ですか?
java - HashMap.put() の奇妙な動作
HashMap からオブジェクトを削除し、新しいキーを使用して同じオブジェクトを元に戻すことに関連していると思われる断続的な障害のトラブルシューティングを試みています。私の HashMap は次のように作成されます。
再割り当てを行うコードは次のとおりです。
私が見ている断続的な動作は、この直後に実行されるコードで、トランザクション オブジェクトが検索可能であることに依存していて、新しいトランザクション ID を使用してトランザクション オブジェクトを見つけられないように見えることです。ただし、将来のある時点で、トランザクションを見つけることができます。ストローを引っ張ると、この種の動作を引き起こす可能性のある put() または remove の非同期効果はありますか?
私の知る限りでは、コンテナーは 1 つのスレッドのみによってアクセスされていることに注意してください。クラス HashMap が「同期」されていないというドキュメントを既に読んでいます。
java - Javaでforeachループを使用して、HashMapの値をループするにはどうすればよいですか?
私は次のコードをコンパイルしようとしています:
for行に次のようなエラーが表示されます。
getData()
メソッドはを返します(Object
ただし、この場合、Object
返される構造はHashMap
構造体です)。 MyClass.Key
は、アプリケーションの目的で作成した列挙型です(別のクラスファイル- MyClass
)。
で同じ構造のforeachループを作成したとき、MyClass.java
この問題は発生しませんでした。
私は何が間違っているのですか?
java - オブジェクトが別の(固定された)オブジェクトのリストからのものであるかどうかを確認する最良の方法は何ですか?
現在、Object Id をキー、1 を値として HashMap を作成しています。メソッドは Object/Id を要求し、一致するキーがあるかどうかを確認します。
それは大丈夫ですか?または、より良い代替手段はありますか?
java - 2-D (同時) HashMap: 2 プロパティ キー タイプ? ハッシュマップのハッシュマップ? [アップデート]
だから私は2次元が必要ConcurrentHashMap
です。
非常に頻繁に値を追加および更新するため、可能な限り高速である必要があります。これはマルチスレッド アプリケーションであるため、HashMap だけでなく ConcurrentHashMap を使用することを選択しました。
「x」と「y」の両方のインデックスは、既知の範囲 (0 ~ 40,000,000) の整数です。
私が知る必要があるのは、これを実装する最も効率的な方法は何ですか?可能な限り高速になりますか? 最も明白なルートは、リテラルの 2-D ハッシュマップを実行することです。
ConcurrentHashMap<Integer, ConcurrentHashMap<Integer, ValueObj>> foo;
または、x と y の 2 つのプロパティを持つプライベート クラス "IntPair" を作成し、それをキーとして使用することもできequals()
ますhashcode()
。そして、あまりにも多くの new を割り当ててしまうIntPair
のでしょうか? 割り当てた x/y ごとに s のセットを保持IntPair
し、まったく同じオブジェクト インスタンスをチェックするだけのように、純粋に再帰的な equals() を使用できますか?
アップデート:
Integer.valueOf(int) を詳しく見てきたので、予測できないエントリを含む非常にまばらな行列を扱っているため、使用する特定のキャッシュ モデルはここでは意味をなさないでしょう。事前に指定されたサブセットではなく、使用されるすべての IntPairs をキャッシュする必要があります。
直感的には、大きなマップで IntPair を調べて、それが既に作成されているかどうかを確認することは、実際には、大きな「2-D」で調べるのとほぼ同じであるように思えます。とにかく ConcurrentHashMap ですね。したがって、ここでの解決策はnew IntPair(x,y)
、キーを検索するたびに使用することです。はい?