あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

List の使い方(最初は作り方)

  • Scala の List はイミュータブル(変更不可能)なシーケンス
  • List の空リストは () 又は Nil
  • List の作成は、ファクトリメソッド( List(要素, ..) の形式 ) か :: を使う。
  • List に対して新しい要素を追加した List を作成する時は :: を使う。
  • List のファクトリメソッド(apply)は、List のコンパニオンオブジェクトで定義されている。
    • Scala で apply メソッドは特別扱いされるので List.apply(要素, ..) は List(要素, ..) と書ける。
scala> val list = List(1, 2, 3)
list: List[Int] = List(1, 2, 3)

scala> val list2  = 4 :: 5 :: 6 :: Nil
list2: List[Int] = List(4, 5, 6)
  • List と List を結合するときは ::: を使う。
scala> val list3 = list ::: list2
list3: List[Int] = List(1, 2, 3, 4, 5, 6)
  • :: と ::: は右側のリストのメソッドなので、右側がリスト以外だとエラーになる。
scala> val list4 = list3 ::: List(7)
list4: List[Int] = List(1, 2, 3, 4, 5, 6, 7)

scala> val list5 = 0 :: list3
list5: List[Int] = List(0, 1, 2, 3, 4, 5, 6)
  • List 要素の参照
    • List オブジェクトに()でリストの要素の添字(0オリジン)を指定すると要素を返す。
      • List オブジェクトの apply メソッドが暗黙に呼び出されている。
scala> list4(6)
res8: Int = 7

scala> list4(0)
res9: Int = 1

Scala では List の添字 n の大きさに比例して要素のアクセスに時間がかかるため
Array ほどランダムな要素の選択を使用することは少ない。