Java Stack クラス

スタックはVectorのサブクラスであり、標準的な後入れ先出し(LIFO)のスタックを実装します。

スタックはデフォルトコンストラクタのみを定義し、空のスタックを作成するために使用します。スタックはVectorで定義されたすべてのメソッドに加えて、独自のメソッドもいくつか定義しています。

Stack()

Vectorで定義されたすべてのメソッドに加えて、独自のメソッドも定義しています:

番号 メソッド説明
1 boolean empty() 
スタックが空かどうかをテストします。
2 Object peek( )
スタックの最上部のオブジェクトを確認しますが、スタックからは削除しません。
3 Object pop( )
スタックの最上部のオブジェクトを削除し、そのオブジェクトをこの関数の値として返します。
4 Object push(Object element)
アイテムをスタックの最上部にプッシュします。
5 int search(Object element)
スタック内のオブジェクトの位置を1を基数として返します。

例

以下のプログラムは、このコレクションがサポートするいくつかのメソッドを示しています。

例

import java.util.*; public class StackDemo { static void showpush(Stack<Integer> st, int a) { st.push(new Integer(a)); System.out.println("push(" + a + ")"); System.out.println("stack: " + st); } static void showpop(Stack<Integer> st) { System.out.print("pop -> "); Integer a = (Integer) st.pop(); System.out.println(a); System.out.println("stack: " + st); } public static void main(String args[]) { Stack<Integer> st = new Stack<Integer>(); System.out.println("stack: " + st); showpush(st, 42); showpush(st, 66); showpush(st, 99); showpop(st); showpop(st); showpop(st); try { showpop(st); } catch (EmptyStackException e) { System.out.println("empty stack"); } } }

上記の例をコンパイルして実行した結果は次のとおりです:

stack: [ ]
push(42)
stack: [42]
push(66)
stack: [42, 66]
push(99)
stack: [42, 66, 99]
pop -> 99
stack: [42, 66]
pop -> 66
stack: [42]
pop -> 42
stack: [ ]
pop -> empty stack
その他の拡張