basyura's blog

あしたになったらほんきだす。

リストへの要素の追加(append)の問題

今日もコップ本

List クラスは要素の末尾への追加(append)をサポートしていないが、それは追加操作に要する時間がリストさイズに比例するからである。
・・・略・・
先頭に挿入してから最後に reverse を呼び出せば良い。

男前だなぁ・・・。

scala> var list: List[Int] = List()
scala> list = 1 :: list            
scala> list = 2 :: list            
scala> list = 3 :: list            
scala> list = 4 :: list
scala> list = 5 :: list
scala> list = list.reverse
scala> list
res13: List[Int] = List(1, 2, 3, 4, 5)

ちなみに、これをやるために 30 分ぐらいかかった・・・。空配列を作っただけだとダメで、型を指定しないと追加するときに怒られる。