scala コレクション ライブラリでは、以下Buffer
から継承しSeq
ます。
Buffer[A] extends Seq[A] with GenericTraversableTemplate[A, Buffer] with BufferLike[A, Buffer[A]] with scala.Cloneable
Buffer
ドキュメントには次のように書かれています:
バッファーは、新しい要素を追加、先頭に追加、または挿入することによって要素のシーケンスを段階的に作成するために使用されます。現在のシーケンス内の要素のインデックスを介して、ランダム アクセス方式で要素にアクセスして変更することもできます。
IndexedSeq
ドキュメントには次のように書かれています:
インデックス付きシーケンスのベース トレイト。
インデックス付きシーケンスは、一定時間またはほぼ一定時間の要素アクセスと長さ計算をサポートします。それらは、インデックス付けと長さに適用される抽象メソッドの観点から定義されています。
インデックス付きシーケンスは Seq に新しいメソッドを追加しませんが、ランダム アクセス パターンの効率的な実装を約束します。
Buffer
すでに拡張されており、
Bufferにメソッドを追加していないSeq
ため、インターフェースを既に実装している必要があり、ドキュメントによると、 の非機能要件を満たす必要があります。では、なぜ ではないのでしょうか。IndexedSeq
Seq
IndexedSeq
IndexedSeq
Buffer
IndexedSeq