問題タブ [keyset]

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 投票する
7 に答える
43141 参照

java - keySet に対する Java 反復

次の Java コードがあります。

「findBugs」から次のような警告が表示されます。

メソッドmyMethodは、entrySet イテレーターの代わりに keySet イテレーターを非効率的に使用します。警告はtmpList割り当て時に行われます。

なぜこれが非効率なのか理解できません。実際、keysリストは一度だけ計算されます。任意のコメント?ありがとう。

0 投票する
1 に答える
781 参照

ruby - Ruby - キーを格納しないハッシュ

私はirbで以下を実行しました:

ハッシュにキー"a"を追加すると、結果に表示されないのはHash#keysなぜですか?

ありがとう

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

java - WeakHashMap の keySet エントリは決して null ではありませんか?

WeakHashMap のキー セットを反復処理する場合、null 値をチェックする必要がありますか?

つまり、WeakHashMap の要素を反復処理中に収集できますか?

編集

この質問のためnullに、ハッシュマップにエントリが追加されていないと仮定できます。

0 投票する
1 に答える
542 参照

java - Java:HashMapはキーがあると主張していますが、どういうわけかそうではありません

ContextクラスのオブジェクトをIntegersにマッピングするHashMapがあります。Contextクラスでは、java.lang.Objectのpublic int hashCode()とpublic boolean equals(Object c)をオーバーライドしました。しかし、私はそれを繰り返すのに問題があります:

(たとえば)各Contextオブジェクトに割り当てられた整数値を取得したいので、マップのキーセットを反復処理します。ただし、マップには指定されたキーがないと表示されているため、機能しません。

出力は

私が理解していることは、キーが与えられると、マップは最初にハッシュコードが一致するかどうかをチェックし、次に等しいかどうかをチェックするということです。ここでは両方の場合があり、「to」オブジェクトとキーセットの最初のオブジェクトのハッシュコードが一致し、それらも等しくなります。興味深いことに、hashCode()関数の戻り値を定数に変更すると(これは有効ですが、パフォーマンス上の理由から推奨されません)、機能します。しかし、156349==156349は7==7と同じように、なぜこれが違いを生むのかわかりません。

私はかなり混乱しています、そして私は私が非常に明白な何かを見逃しているのではないかと心配しています、そしてそれを見ることができません。もしそうなら、私は恥ずかしいですが、それでも、私はヒントをいただければ幸いです:-)

どうもありがとう!

0 投票する
3 に答える
5509 参照

java - map.get(key)メソッドの回避

私は次のコードを持っていますが、マップキーを繰り返し処理しながらマップから値を取得することkeySet()は、findBugsを使用しても間違いであることがわかりました。警告が表示されますWMI_WRONG_MAP_ITERATOR

では、なぜこれが良くないのか、どうすれば修正できますか?

ありがとう。

0 投票する
3 に答える
1634 参照

java - Map.keySet() および Set.addAll が NullPoiterException をスローする

これは古いコードであり、デバッグ中です。サイズ2のMap(myMap)があります(確かに)。キーはnull1です。

このwhileループは、1 回だけ繰り返されます。ここで何が問題なのかわかりません。何か問題ある?

私を助けてください。前もって感謝します。

アップデート:

今、私は例外を下回っていますmySet.addAll(myMap.keySet());

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

java - javaコレクション-マップ内のkeyset()とentrySet()

文字列配列要素は、文字列配列の要素がキーであり、単語の頻度が値であるマップです。例:

次に、マップには次のようなエントリがあります[ if:1, it:2 .... ]

すべてのキーを出力します。"if","it","is","to","be","it","is","up","me","to","delegate"

すべてのキー値のペアを出力します:

エントリセットを使用すると、すべての値が出力されます。

ただし、以下のコードブロックは、上記とまったく同じ出力を出力する必要がありますが、そうではありません。

それは印刷します:

しかし、whileループの1行目のコメントを外すと

行にコメントします

次に、すべてのキーを取得します。{"if","it","is","to","be","it","is","up","me","to","delegate"};

m.get()と一緒に使用する場合itr2.next()、イテレータにはいくつかのキーがありません。

0 投票する
4 に答える
10415 参照

java - ハッシュマップを文字列配列に変換する

作成した文字列配列に入れることができるハッシュマップを配列に変換しようとしています。ただし、java.lang を取得します。Drinkar.keySet().toArray() を String[] に型変換しましたが、それでも機能しません。

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

lua - lua: テーブル内のキーのリストを取得します

lua でテーブルのキー セットを取得する方法を知る必要があります。たとえば、次のテーブルがあるとします。

次のようなテーブルを取得したい:

0 投票する
1 に答える
291 参照

c++ - マップキーセットでアルゴリズムを見つける (c++)

マップのキーセットに対して .find(itr, itr, value) アルゴリズムを使用する方法はありますか? キー値をセットに転送する (そしてそれを使用する) ためにマップ上でイテレータを使用できることは知っていましたが、それを行うためのより迅速な方法があるかどうかはわかりませんでした。