不変キュー 具象不変コレクションクラス ベクトル 不変スタック 目次
最新版は Scala Documentation に移行しました。

不変スタック

後入れ先出し (LIFO: last in first out) の列が必要ならば、スタック (Stack) がある。 push メソッドを使ってスタックに要素をプッシュ、pop を使ってポップ、そしてtop を使って削除することなく一番上の要素を読み込むことができる。これらの演算は、全て定数時間で行われる。

以下はスタックに対して行われる簡単な演算の例だ:

scala> val stack = scala.collection.immutable.Stack.empty
stack: scala.collection.immutable.Stack[Nothing] = Stack()
scala> val hasOne = stack.push(1)
hasOne: scala.collection.immutable.Stack[Int] = Stack(1)
scala> stack
stack: scala.collection.immutable.Stack[Nothing] = Stack()
scala> hasOne.top
res20: Int = 1
scala> hasOne.pop
res19: scala.collection.immutable.Stack[Int] = Stack()

機能的にリストとかぶるため、不変スタックが Scala のプログラムで使われることは稀だ: 不変スタックの push はリストの :: と同じで、pop はリストの tail と同じだ。

続いては、不変キュー


不変キュー 具象不変コレクションクラス ベクトル 不変スタック 目次