列トレイト Seq, IndexedSeq, および LinearSeq バッファ 目次
最新版は Scala Documentation に移行しました。

バッファ

可変列に分類されるものの中で重要なものに Buffer がある。バッファは既存の要素を上書きできるだけでなく、要素を挿入したり、削除したり、効率的にバッファの最後に新しい要素を追加したりできる。バッファがサポートする新しいメソッドの中で主要なものは、要素を最後に追加する +=++=、先頭に追加する +=:++=:、要素を挿入する insertinsertAll、そして要素を削除する remove-= だ。以下の表にこれらの演算をまとめた。

よく使われるバッファの実装に ListBufferArrayBuffer がある。名前が示すとおり、ListBufferList に支えられており、要素を効率的に List に変換できる。一方、ArrayBuffer は配列に支えられており、これも素早く配列に変換できる。

Buffer トレイトの演算   
使用例 振る舞い
加算:
buf += x バッファの最後に要素 x を追加し、buf 自身を戻り値として返す。
buf += (x, y, z) 渡された要素をバッファの最後に追加する。
buf ++= xs xs内の全ての要素をバッファの最後に追加する。
x +=: buf バッファの先頭に要素 x を追加する。
xs ++=: buf xs内の全ての要素をバッファの先頭に追加する。
buf insert (i, x) バッファの添字 i の位置に要素 x を挿入する。
buf insertAll (i, xs) xs内の全ての要素をバッファの添字 i の位置に挿入する。
減算:
buf -= x バッファから要素 x を削除する。
buf remove i バッファの添字 i の位置の要素を削除する。
buf remove (i, n) バッファの添字 i の位置から始まる n個の要素を削除する。
buf trimStart n バッファの先頭の要素 n個を削除する。
buf trimEnd n バッファの最後の要素 n個を削除する。
buf.clear() バッファの全ての要素を削除する。
クローン演算:
buf.clone buf と同じ要素を持った新しいバッファ。

続いては、集合


列トレイト Seq, IndexedSeq, および LinearSeq バッファ 目次