問題タブ [iterator]

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

c# - コレクションを返すメソッドは、C# の foreach ステートメントのすべての反復で呼び出されますか?

今日の朝、いくつかの C# コードを使用していましたが、次のようなものがありました。

したがって、言語フレームワークを完全に理解していないので、反復が行われるたびに GetDataTable() が呼び出されるのか、それとも 1 回だけ呼び出されて結果のデータ (行になる) が保存されるのかを知りたいと思います。ループするメモリ。いずれにせよ、新しいコレクションを宣言して保存し、そこから作業しました...

新しい変数を追加したので、代わりに次のようにしました。

しかし、これが必要かどうかはよくわかりません。

前もって感謝します。

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

java - Map を反復処理する際に許可される基本的な操作は何ですか?

Java で Map を繰り返し処理しているとします...その Map を繰り返し処理しているときに、その Map に対して何ができるかわかりません。私は、Javadoc の Iterator インターフェイス remove メソッドの次の警告にほとんど混乱していると思います。

[...] このメソッドを呼び出す以外の方法で反復の進行中に基になるコレクションが変更された場合、反復子の動作は規定されていません。

remove メソッドを問題なく呼び出せることは確かです。しかし、Map コレクションを繰り返し処理しているときに、次のことができますか?

  1. キーに関連付けられた値を Map クラスの put メソッド (既存のキーで put) で変更しますか?

  2. Mapクラスのputメソッド(新しいキーでput)で新規エントリ追加?

  3. Map クラスの remove メソッドでエントリを削除しますか?

私の推測では、おそらく安全に #1 (既存のキーに配置) を実行できますが、#2 または #3 を安全に実行することはできません。

これについて明確にしていただきありがとうございます。

0 投票する
6 に答える
9785 参照

c# - 一度に2つの配列を反復する方法は?

テキスト ファイルの解析中に 2 つの配列を作成しました。1 番目には列名が含まれ、2 番目には現在の行の値が含まれます。マップを作成するには、両方のリストを一度に反復処理する必要があります。現在、私は次のものを持っています:

これは問題なく機能しますが、私のエレガントな感覚を完全には満足させません。また、配列の数が 2 つよりも多い場合 (私は時々そうしなければなりません)、非常に面倒になります。誰かが別の簡潔なイディオムを持っていますか?

0 投票する
6 に答える
7164 参照

java - 反復中のセットの変更 java

私は再帰的な方法を反復的にしようとしています。

繰り返し処理したいオブジェクトのリストがあり、それらのサブオブジェクトをチェックします。

再帰的:

こんな感じに変えたい

擬似コードが貧弱で申し訳ありませんが、基本的には、チェックするリストの最後に新しいオブジェクトを追加しながら、サブオブジェクトを反復処理したいと考えています。

リストを使用してこれを行うことができ、次のようなことができます

しかし、重複するサブオブジェクトを追加したくありません。もちろん、追加する前に list.contains(each subObject) かどうかを確認することもできます。

しかし、私は Set を使用してそのクリーナーを実現したいと考えています。

したがって、基本的には、繰り返し処理中にセットに追加する方法がありますか、それとも手動で .contains() をチェックするのではなく、リストをセットのように動作させる簡単な方法はありますか?

コメントをお待ちしております。

ありがとう

0 投票する
6 に答える
27588 参照

c# - イールドブレークの用途は何ですか?

重複の可能性:
「利回りが壊れる」とは何ですか?C#で行う?

「ブレーク」または「リターン」を使用することによって他の方法では達成できなかった「利回りブレーク」ステートメントの使用法を誰でも見ることができますか。

この発言はどう見ても無理がある。さらに、このステートメントがなければ、"yield return X" ステートメントは "yield X" に単純化でき、はるかに読みやすくなります。

私は何が欠けていますか?

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

c++ - コンテナーを反復処理する最良の方法

コンテナーを反復処理するこれら 2 つの方法の長所と短所は何ですか / どちらを好むか、またその理由は次のとおりです。

また

補助的な質問: i++ または ++i? なんで?

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

c++ - 2つのベクトルから要素を抽出しますか?

1つはvec1{e1、e2、e3、e4}で、もう1つはvec2 {e2、e4、e5、e7}の2つのベクトルがあります。

上記のベクトルから3つのベクトルを効果的に取得する方法。1。vec1でのみ使用可能な要素があります。同様に2にはvec2要素のみがあり、3。共通の要素があります。

0 投票する
9 に答える
1563 参照

c++ - イテレータで STL コンテナを使用する一般的な誤用は何ですか?

イテレータでSTLコンテナを使用する一般的な誤用は何ですか?

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

java - for ステートメントと while ステートメントを使用して Iterator を前方に移動することの違い

Object の Iterator を使用するときは、while ループを使用します(Java を学習するすべての本に書かれているように、Bruce Eckel のJava での思考のように):

しかし、代わりに誰かがfor ループを使用するのを見たことがあります:

この選択がわかりません:

  • 序数シーケンス (配列として) またはステップの特別なルール (通常は単純なインクリメントとして宣言) を持つコレクションがある場合は、 for ループを使用しますcounter++
  • I have'nt this Constraint but only a logic condition for exit でループが終了したときに、while ループを使用します。

それは、他の原因のないスタイルコーディングの問題ですか、それとも私が知らない他のロジック (パフォーマンスなど) が存在するのでしょうか?

フィードバックをお寄せいただきありがとうございます