ScalaのSeqの基本的な操作についてまとめていきます。
Scala Seqの基本的な操作
def main(args: Array[String]) : Unit = { // Seqの宣言 val seq = Seq("a", "b", "c") println(seq) // List(a, b, c) // 要素へアクセス println(seq(0)) // a println(seq.head) // a println(seq.last) // c // 空の可能性があるseqにはheadOption, lastOptionを使用する println(seq.headOption) // Some(a) println(Seq().headOption) // None println(Seq().lastOption) // None // tail - 先頭以外の要素を取得する println(seq.tail) // List(b, c) // init - 末尾以外の要素を取得する println(seq.init) // List(a, b) // 要素の追加 println(seq :+ "d") // List(a, b, c, d) println("z" +: seq) // List(z, a, b, c) // 追加した際は、別インスタンスが返ってくる(immutable) val seq2 = seq +: "d" println(seq eq seq2) // false // Seqどうしの連結 println(seq ++ seq) // List(a, b, c, a, b, c) // take - 先頭から要素を抽出 println(seq.take(2)) // List(a, b) // takeWhile - 条件を満たす限り先頭から抽出を続ける println(seq.takeWhile(_ != "b")) // List(a) // dropRight - 末尾から要素を削除 println(seq.dropRight(2)) // List(a) // filter - 条件に合致する要素のみ抽出 println(seq.filter(_ != "b")) // List(a, b) // filterNot println(seq.filterNot(_ == "b")) // List(a, b) }