列トレイトSeq, IndexedSeq, およびLinearSeqBuffers目次

バッファ

可変な列の重要なサブカテゴリはバッファ(Buffer)です。 バッファは既存要素の更新だけなく、要素の挿入・要素の削除・および新しい要素の末尾への効率的な追加もできます。 バッファでサポートされる新しいメソッドのうち主要なものは、 末尾に対する要素の追加のための+=および++=、 先頭に対する追加のための+=:および++=:、 要素の挿入のためのinsertおよびinsertAll、 要素の削除のためのremoveおよび-=です。 これらの演算は以下の表に要約できます。

バッファの実装で良く使われるのはListBufferArrayBufferの2つです。 その名前が示すようにListBufferはリストによって支えらられ、要素のリストへの効率的な変換をサポートし、 一方で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) バッファの添字iの場所にxsの全ての要素を挿入する。
削除:
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, およびLinearSeqBuffers目次