[解決済み] Dartでリスト、マップ、セットのクローンを作成する
2022-09-02 13:40:51
質問
Java のバックグラウンドから来たものですが、Dart をクローンする推奨される方法は何ですか?
List
,
Map
と
Set
?
どのように解決するのですか?
使用方法
clone()
の使用は、Javaではトリッキーで疑問の多い
1,2
. 効果的に
clone()
はコピーコンストラクタであり、そのために Dart の
List
,
Map
と
Set
タイプはそれぞれ
という名前のコンストラクタがあります。
という名前の
.from()
を実行する
浅いコピー
例えば、次のような宣言があるとします。
Map<String, int> numMoons, moreMoons;
numMoons = const <String,int>{ 'Mars' : 2, 'Jupiter' : 27 };
List<String> planets, morePlanets;
を使うことができます。
.from()
のようにします。
moreMoons = new Map<String,int>.from(numMoons)
..addAll({'Saturn' : 53 });
planets = new List<String>.from(numMoons.keys);
morePlanets = new List<String>.from(planets)
..add('Pluto');
なお
List.from()
はイテレータを使うことができます。
List
.
完全を期すため、ここで言及するのは
dart:html
Node
クラスが定義する
clone()
メソッドを定義しています。
1
J. ブロッホ、"
効果的なJava
" 第2版, 項目11.
2
B. ヴェナーズ、"
Josh Bloch、デザインについて。コピー コンストラクタとクローン
2002年
. ここから参照
3
. 記事からの引用です。
私の本の中のクローンに関する項目を読んだなら、特に行間を読めば、私がクローンは深く壊れていると考えていることがわかるだろう。---J.Bloch
関連
-
[解決済み] vbscriptでコレクションオブジェクトを作成する方法は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
-
[解決済み] C#で汎用リストをクローンする方法は?
-
[解決済み】静的なMapを初期化する方法は?
-
[解決済み】KotlinのListに "add"、"remove "がない、Mapに "put "がないなど?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] vbscriptでコレクションオブジェクトを作成する方法は?
-
[解決済み] MongoDBで複数のコレクションを一度にクエリする
-
[解決済み] List<> and/or Map<> クラス/ライブラリのタイプスクリプトはありますか?[クローズド]
-
[解決済み] ディープコピーとシャローコピーの違いは何ですか?
-
[解決済み】KotlinのListに "add"、"remove "がない、Mapに "put "がないなど?
-
[解決済み】Javaで最後のN個の要素を保持するサイズ制限のある待ち行列
-
[解決済み] コレクション内のカウントと長さ、サイズ
-
[解決済み] エンティティのコレクションにおけるIListとIEnumerableの比較