[解決済み] scalaのArrayとListの違いについて
質問
どのような場合にArray(Buffer)とList(Buffer)を使えばいいのでしょうか?私が知っている唯一の違いは、配列が非変数で、リストが共変数であることです。しかし、パフォーマンスや他のいくつかの特性についてはどうですか?
どのように解決するのですか?
不変の構造体
Scalaの
List
は不変の再帰的データ構造であり,Scala の基本的な構造であるため,(おそらくは
Array
(これは実際には
ミュータブル
- その
不変のアナログ
の
Array
は
IndexedSeq
).
もしあなたがJavaのバックグラウンドを持っているのであれば、明らかに平行して、いつ
LinkedList
オーバー
ArrayList
. 前者は、一般に、常に
トラバース
(一方後者は、サイズ (あるいは最大サイズ) がわかっているリストか、あるいは
高速ランダムアクセス
が重要です。
変更可能な構造体
ListBuffer
への定数時間変換を提供します。
List
を使用する理由はそれだけです。
ListBuffer
のように、後で変換する必要がある場合。
scalaの
Array
は、JVM上ではJavaの配列で実装されているはずです。
Array[Int]
の方がはるかにパフォーマンスが高いかもしれません。
int[]
よりも
List[Int]
(この場合、Scalaの最新バージョンで新しい
@specialized
という機能があります)。
しかし、私は、その使用は
Array
なぜなら,配列が本当に必要なプリミティブ型に支えられるのか,それともラッパー型としてボックス化されるのかを決定するために,フードの下で何が起こっているのかを知る必要があると感じるからです.
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] JavaScriptの配列で一意な値をすべて取得する(重複を排除する)。
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] Javaで配列をリストに変換する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み] Swiftの辞書です。値を配列として取得する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Swiftでindexとelementでループを反復させる方法
-
[解決済み] TypeScriptで配列の項目を削除するには?
-
[解決済み] ある要素が配列に含まれているかどうかを確認する方法
-
[解決済み] TypeScriptのオブジェクトをC#のようにDictionary型にする
-
[解決済み】Scalaのvarとvalの定義の違いは何ですか?
-
[解決済み] 要素に空白を含むBash配列
-
[解決済み] リストがどの程度ソートされているかを測定する方法はありますか?
-
[解決済み] 配列中の3つの要素のうち、和が与えられた数値に最も近いものを探す
-
[解決済み] MATLABで、bsxfunを使うのはいつが最適ですか?
-
[解決済み] HttpPostedFileBaseをbyte[]に変換する。