配列コピー – ActionScript

ActionScriptで配列とかディープコピーするのはどんな方法が一般的なんだろうと思って調べてました。
今回は、僕のようなAS初級者向けの内容です。

以下のエントリーでByteArrayを使ってオブジェクトをディープコピーする例がありました。
ActionScriptでディープコピー
おぉ、けっこう簡単。後追いですが僕も検証してみました。

うん、できてる。
次は100万個の要素をfor文でガリガリコピーしたものと速度比較。

あれ。forの方が早い。ループ処理を最適化してさらに検証。

ByteArrayで配列コピーすると遅いってことでいいのか。
ただ、100万個も要素コピーすることなんてまずないと思いますけど;
ここで、変数に配列名(copy1 = list)を代入すると配列のシャローコピー(浅いコピー)になりますが、
ループで要素を1つずつ入れてやれば(copy1[j] = list[j])ディープコピーができます。
C言語でも「配列名はアドレス」って大学生の時にしつこく教えられた記憶があります。

また、配列のコピーならArray.concat()、Array.slice()を使っても出来ます。

concat。速い。
なんか時間をムダにした気がする。。。。

あわせて読む:

2 Thoughts

  1. ピンバック: ArrayUtil (as3corelib) - Rest Term
  2. How i may contact the administrator of a site? I have a question.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です