[解決済み] Scala:Arrayに要素を追加する最良の方法は何ですか?
質問
を持っているとします。
Array[Int]
のように
val array = Array( 1, 2, 3 )
ここで、ある要素を配列に追加したいと思います。
4
次の例のように。
val array2 = array + 4 // will not compile
もちろん
System.arraycopy()
しかし、Scala ライブラリにはこのための関数があるはずで、私はそれを見つけられませんでした。何かご指摘をありがとうございます。
注意事項
-
次の行のように、別の要素のArrayを追加できることは承知していますが、それはあまりにも回りくどいように思います。
val array2b = array ++ Array( 4 ) // this works
-
私はリストと配列の長所と短所を知っていますが、様々な理由から配列の拡張に特に関心を持っています。
編集1
を指摘する回答ありがとうございました。
:+
演算子メソッドです。これは私が探していたものです。残念なことに、このメソッドは
arraycopy
-- 約2~3倍遅い。での実装を見ると
SeqLike[]
ビルダーが作成され、そこに配列が追加され、ビルダーを経由して追加が行われ、ビルダーがレンダリングされます。配列の実装としては、あまり良いとは言えない。2つの方法を比較する簡単なベンチマークを行いました。10サイクルのうち最速の時間を調べました。あるクラスの8要素の配列インスタンスに1項目の追加を1000万回繰り返すと
Foo
では3.1秒かかります。
:+
で1.7秒、シンプルな
append()
を使用するメソッドです。
System.arraycopy();
の場合、Long の 8 要素配列に対して 1,000 万回の単項目追加を繰り返すと 2.1 秒かかります。
:+
で0.78秒、単純な
append()
というメソッドがあります。のカスタム実装で修正できないものだろうか?
Array
?
編集2
何はともあれ、チケットを提出しました。 https://issues.scala-lang.org/browse/SI-5017
解決方法は?
を使用することができます。
:+
は配列に要素を追加し
+:
で前置する。
0 +: array :+ 4
を生成する必要があります。
res3: Array[Int] = Array(0, 1, 2, 3, 4)
の他の実装と同じです。
Seq
.
関連
-
[解決済み] Rubyでハッシュの配列をソートする方法
-
[解決済み] Ruby: ハッシュの配列で Enumerator を取得しようとすると nil:NilClass の未定義メソッド `[]' が発生する。
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] 配列の最後の項目を取得する
-
[解決済み] 配列の最初の要素を取得する
-
[解決済み] Bashでインデックスを指定せずに配列に新しい要素を追加する
-
[解決済み】配列に何かを追加する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】IndexError: Index 10 is out of bounds for axis 0 with size 10
-
[解決済み] Verilogで1次元と2次元のバイト配列を宣言して使用するには?
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] MIPSで配列を作る(アクセスする)方法
-
[解決済み] MIPSの2Dアレイ
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] Rで3D行列をセットアップし、特定の要素にアクセスする
-
[解決済み] Scala:Arrayに要素を追加する最良の方法は何ですか?
-
[解決済み] jsonに複数の値を1つのキーで格納する
-
[解決済み] Twigでの出力配列