不変キュー | 目次 |
最新版は Scala Documentation に移行しました。
キュー (Queue) はスタックに似ているが、後入れ先出し (LIFO: last in first out) ではなく、先入れ先出し (FIFO: first in first out) だ。
以下に空の不変キューの作り方を示す:
scala> val empty = scala.collection.immutable.Queue[Int]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
empty: scala.collection.immutable.Queue[Int] = Queue() |
enqueue を使って不変キューに要素を追加することができる:
scala> val has1 = empty.enqueue(1) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
has1: scala.collection.immutable.Queue[Int] = Queue(1) |
複数の要素をキューに追加するには、enqueue の引数にコレクションを渡す:
scala> val has123 = has1.enqueue(List(2, 3)) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
has123: scala.collection.immutable.Queue[Int] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
= Queue(1, 2, 3) |
キューの先頭から要素を削除するには、dequeue を使う:
scala> val (element, has23) = has123.dequeue | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
element: Int = 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
has23: scala.collection.immutable.Queue[Int] = Queue(2, 3) |
dequeue は削除された要素と残りのキューのペアを返すことに注意してほしい。
続いては、範囲
不変キュー | 目次 |