IterableトレイトトップコレクションAPIの概要Traversableトレイト目次

Traversableトレイト

コレクション階層のトップはTraversableトレイトです。 Traversableトレイトの唯一の抽象メソッドはforeachです。

def foreach[U](f: Elem => U) 

Traversableを実装するコレクションクラスはこのメソッドを定義するだけで大丈夫です。他のメソッドはTraversableから継承できます。

foreachメソッドはコレクションの全ての要素を辿って、与えられた操作fを各要素に適用することを意図しています。 この操作の型はElem => Uで、Elemはコレクションの要素の型で、Uは任意の結果型です。 fはその副作用のためだけに呼び出されます。さらに言えばfの結果はforeachによって捨てられます。

Traversableは多くの具象メソッドも定義し、その全てを以下のテーブルに挙げています。 これらのメソッドは以下のカテゴリに分類できます:

Traversableクラス内の演算
何であるか 何をするか
抽象メソッド:
xs foreach f xsの全ての要素に対して関数fを実行する。
追加:
xs ++ ys xsysの両方の要素からなるコレクション。 ysTraversableOnceコレクション、つまりTraversableまたはIterator
写像:
xs map f xsの全ての要素に関数fを適用して得られるコレクション。
xs flatMap f xsの全ての要素に、コレクションを値とする関数fを適用し、結果を連結して得られるコレクション。
xs collect f xsの要素のうち部分関数fが定義されている全ての要素に対してfを適用し、結果を集めて得られるコレクション。
変換:
xs.toArray このコレクションを配列に変換する。
xs.toList このコレクションをリストに変換する。
xs.toIterable このコレクションをイテラブルに変換する。
xs.toSeq このコレクションを列に変換する。
xs.toIndexedSeq このコレクションを添字付き列に変換する。
xs.toStream コレクションをストリームに変換する。
xs.toSet コレクションを集合に変換する。
xs.toMap キーと値のペアのコレクションをマップに変換する。 もしこのコレクションがペアを要素として持たなければ、この演算の呼び出しは静的な型エラーとなる。
複写:
xs copyToBuffer buf このコレクションの全ての要素をバッファbufにコピーする。
xs copyToArray(arr, s, n) このコレクションの高々n要素を配列arrに添字sからコピーする。 最後の2つの引数は省略可能である。
大きさ情報:
xs.isEmpty このコレクションが空かどうか調べる。
xs.nonEmpty このコレクションが要素を含むか調べる。
xs.size このコレクション内の要素数。
xs.hasDefiniteSize xsが有限の大きさを持つと分かっていれば真。
要素取得:
xs.head このコレクションの最初の要素(もし順序付けが定義されていなければある要素)。
xs.headOption xsの最初の要素をオプション値に入れたもの、またはもしxsが空ならばNone
xs.last このコレクションの最後の要素(もし順序付けが定義されていなければある要素)。
xs.lastOption xsの最後の要素をオプション値に入れたもの、またはもしxsが空ならばNone
xs find p xsの要素で最初にpを満たす要素を含むオプション値、 またはもしどの要素も適さないならNone
部分コレクション:
xs.tail このコレクションのxs.head以外の残り。
xs.init このコレクションのxs.last以外の残り。
xs slice (from, to) xsの添字範囲内の要素からなるコレクション(fromからtoを含まずtoまで)。
xs take n xsの最初のn要素からなるコレクション(もし順序付けが定義されていなければ任意のn要素)
xs drop n このコレクションのxs take n以外の残り。
xs takeWhile p このコレクション内の要素のプレフィックスで、全てがpを満たす最長のもの。
xs dropWhile p 全てがpを満たす最長のプレフィックスを除いたコレクション。
xs filter p xsの要素で述語pを満たす全ての要素からなるコレクション。
xs withFilter p このコレクションの非正格なフィルタ。 続くmap, flatMap, foreachおよびwithFilterの呼び出しはxsの要素で条件pが真となるものにだけ適用される。
xs filterNot p xsの要素で述語pを満たさない全ての要素からなるコレクション。
分割:
xs splitAt n xsをある位置で分割し、コレクションのペア(xs take n, xs drop n)を与える。
xs span p xsを述語に従って分割し、コレクションのペア(xs takeWhile p, xs.dropWhile p)を与える。
xs partition p xsを2つのコレクションのペアに分割する。 1つは述語pを満たす要素を含み、 もう1つは満たさない要素を含み、 コレクションのペア(xs filter p, xs.filterNot p)を与える。
xs groupBy f xsを判別関数fに従いコレクションのマップに分割する。
要素状態:
xs forall p xsの全ての要素でpが成り立つか示す真偽値。
xs exists p xsのある要素でpが成り立つか示す真偽値。
xs count p xsの要素でpを満たす要素数。
折り畳み:
(z /: xs)(op) zから始まり左から右へ、二項演算opxsの隣り合った要素に適用する。
(xs :\ z)(op) zから始まり右から左へ、二項演算opxsの隣り合った要素に適用する。
xs.foldLeft(z)(op) (z /: xs)(op)と同じ。
xs.foldRight(z)(op) (xs :\ z)(op)と同じ。
xs reduceLeft op 左から右へ、二項演算opを空でないコレクションxsの隣り合った要素に適用する。
xs reduceRight op zから始まり右から左へ、二項演算opを空でないコレクションxsの隣り合った要素に適用する。
特定の折り畳み:
xs.sum コレクションxsの数値要素値の和。
xs.product コレクションxsの数値要素値の積。
xs.min コレクションxsの順序付けされた要素値の最小値。
xs.max コレクションxsの順序付けされた要素値の最大値。
文字列:
xs addString (b, start, sep, end) xsの全ての要素をセパレータsepで区切って表示し、文字列startendで囲った文字列をStringBuilderに追加する。 start, sep, endは全て省略可能。
xs mkString (start, sep, end) コレクションを、xsの全ての要素をセパレータsepで区切って表示し、文字列startendで囲った文字列に変換する。 start, sep, endは全て省略可能。
xs.stringPrefix xs.toStringによって返される文字列の先頭にあるコレクション名。
ビュー:
xs.view xsに対するビューを生成する。
xs view (from, to) xsの添字範囲内の要素を表すビューを生成する。

続いては: Iterableトレイト


IterableトレイトトップコレクションAPIの概要Traversableトレイト目次