問題タブ [shallow-copy]
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 - 浅いコピーを作成することにより、リストのConcurrentModificationExceptionを回避します
私は次のようなクラスを持っています:
persons
同時に変更できます。1つはremove()
1つのスレッドによるもので、2つはによって返される浅いコピーされたインスタンスによるものgetAllPersons()
です。
マルチスレッド環境で上記のシナリオをテストして、が呼び出されたConcurrentModificationException
ときに浅いコピーを返すことで回避できるかどうかを確認しました。getAllPersons()
うまくいったようです。私は一度もに遭遇したことがありませんConcurrentModificationException
。
この場合、なぜ浅いコピーだけを作成するのはpersons
避けConcurrentModificationException
ますか?
c++ - カスタム コピー コンストラクターが原因である可能性が最も高い C++ のセグメンテーション フォールトに関する質問
コピー コンストラクターが原因であると思われるセグメンテーション エラーが発生しています。ただし、このような例はオンラインのどこにも見つかりません。浅いコピーと深いコピーについて読んだことがありますが、このコピーがどのカテゴリに該当するかわかりません。誰でも知っていますか?
コード:
編集: operator= とコンストラクターを追加
解決済み: 間違ったツリーを鳴らすと、同じオブジェクトに対して delete を 2 回呼び出す関数になってしまいました
java - Java の浅いコピーと深いコピー JLS
重複の可能性:
Java 参照渡しの問題
以下の私のコードでは、methodA
が呼び出され、 への呼び出しをデリゲートします。methodB
その際にmethodB
、入力パラメータに文字列リテラル「bbb」を割り当てますが、に戻ってmethodA
、文字列リテラルはそこにありませんでした。JLS のどのセクションでこれが定義されていますか?行動?
c# - コードのどの時点でこのリスト<>は空になりましたか?
ご想像のとおり、説明のためにこのコードを削除しましたが、これでほとんどすべてのことを実行できます。ディープ/シャローコピーとクローン作成に関係していると感じています。もしそうなら、誰かがここで何が起こっているのか、どうすればそれを回避/リストに別の方法で入力できるのかを説明できますか?
どうもありがとう、
ダン
編集:申し訳ありませんが、私が「documentList」と書いたところには、実際には次のように書かれています。
つまり、セッション変数から来ているのです。ブレークポイントを使用すると、添付ファイルリストが正常に入力されていることがわかりますが、クリックイベントハンドラーに関しては空です!?nullではなく、カウント==0です。
c# - オブジェクト プロパティのコピー: リフレクションまたはシリアル化 - どちらが高速ですか?
同じタイプのオブジェクトが 2 つあり、あるオブジェクトから別のオブジェクトにプロパティ値をコピーする必要があります。次の 2 つのオプションがあります。
リフレクションを使用して、最初のオブジェクトのプロパティをナビゲートし、値をコピーします。
最初のオブジェクトをシリアル化し、コピーを逆シリアル化します。
どちらも私の要件で機能します。問題は、速度 (コスト) の点でどちらを使用する方がよいかということです。
例
プロパティ値を から にコピーする必要がありPerson p1
ますPerson p2
。
この単純なサンプルの場合、どの方法がより高速ですか?
アップデート
シリアル化には、ここで提案されている ObjectCopier を使用します: Deep cloning objects
リフレクションには、次のコードを使用します。
actionscript - 1 つの actionscript コンポーネントの値を別のコンポーネントに割り当てます (浅いコピー)
actionscript には、label1 と label2 という 2 つのラベル コンポーネントがあります。
label1.text の値が変わると、自動的に label2.text の値も同じ値に変わるようにしたいです。
c# - C# でのオブジェクトの浅いコピー
C# で浅いコピーを実行することはわかっています MemberwiseClone() 関数を使用できますが、関数内にオブジェクトがあり、このオブジェクトのコピーを取得したいので、リストに追加したときに同じものを参照しませんここでオブジェクトが変更されたときのオブジェクトは私のコードです
UndoState オブジェクトを新しいオブジェクトにコピーしてバッファに追加したい
ありがとうございました
c# - C#浅いコピー辞書?
C# で辞書を浅いコピーする必要があります。
例えば:
残念ながら、それは次のエラーを返しますobject.MemberwiseClone()' via a qualifier of type
。
これが何を意味するのか完全にはわかりません...辞書を浅くコピーする/上記のコードを修正する別の方法はありますか?
python - Pythonのディープコピーとシャローコピーとパスリファレンス
Pythonのディープコピーとシャローコピーについて質問です。
私を助けることはできません。
なぜ例えば 1 の合計は 10 ではなく 6 なのですか?
例1:
出力合計は 6
例2:
出力合計は 10
例3:
出力合計は 6 です。
また、例えば 4
その合計は 6 です。 theCopy が kvps への参照である場合、それは 10 になります。
gmp - mpz_t の浅いコピー
GMP は、mpz_t を初期化して割り当てるためのメソッドを提供します。
mpz_init_set(a, b) を呼び出すと、b の内容が a に割り当てられます。ただし、これはbでディープコピーを実行すると思います。
私のプロジェクトでは、5,000,000 (640MB のメモリについて話している) の mpz_t の配列を操作する必要があり、使用しているフレームワークはそのような型に対してさまざまな割り当て操作を実行します (私はフレームワークを開発して書き直していません)。オプションではありません)。最近、ほとんどの代入後に b の値がクリアされるので、既に使用できる値をそのままディープ コピーするのは不自然に思えることに気付きました。ただし、フレームワークのインターフェイスではそれが許可されておらず (mpz_t のラッパーを使用)、それを変更するには多大な労力が必要です (いくつかの基本的なことはまだ変更できます)。
mpz_class へのポインターに基づくソリューションを既に試しましたが、驚くべきことに、パフォーマンスがまったく向上しません。実際、実行が遅くなります (ただし、巨大な配列ではテストされていません)。
私の質問は: mpz_t を浅いコピーできますか? 以下に例を示します