study-note

3. コレクション

目次


List


基本操作

val numbers = List(1, 2, 3, 4)
println(numbers.head)    // 1 (先頭要素)
println(numbers.tail)    // List(2, 3, 4) (先頭以外)
println(numbers.isEmpty) // false
val list2 = 0 :: list1     // 先頭に0を追加した新しいリスト
val list3 = list1 :+ 5    // 末尾に5を追加した新しいリスト

参照:サンプルコード


関数型コレクション操作

参照:サンプルコード


Listの高階関数操作

flatMap

map + flatten

val data = List("a b", "c d")
val result = data.flatMap(str => str.split(" "))
// List("a", "b", "c", "d")

reduce

累積的に要素を処理

val numbers = List(1, 2, 3, 4)
val sum = numbers.reduce((a, b) => a + b)  // 10

fold

reduceと似ているが、初期値がある

val numbers = List(1, 2, 3, 4)
val product = numbers.fold(1)((a, b) => a * b)  // 24


参照:サンプルコード


Scala標準ライブラリ


4. 条件分岐