JavaA2Z

KAB-studio > プログラミング > JavaA2Z > スタックとは

スタック

日本語 積み上げ
英語 stack
ふりがな すたっく
フリガナ スタック

解説

複数のデータを格納するとき、最後に格納したデータから取り出す方式のこと。
データ構造のひとつ。「LIFO」「FILO」「後入れ先出し」「先入れ後出し」とも言う。
 
構造的には、配列のように一に並べた構造をしている。
ただし、どの位置のデータも任意に取得できるわけではなく、最後に格納したデータしか取り出すことができない。
スタックは、テーブルの上に積み上げたコインのようなものである。間に挟まれたコインを取り出すことはできない。取れるのは一番上に積まれたコイン、つまり一番最後に積んだコインだけである。
スタックは「キューの逆」と言える。
 
J2SEコレクションにStackクラスがあり、同様の機能を持つ。
push()メソッドでデータを入れ、pop()メソッドでデータを取り出す。
 
また、ローカル変数の確保・解放の順番もスタックと同様のため、ローカル変数を置くメモリ領域を「スタック領域」という。また、メソッド呼び出し順を調べることを「スタックトレース」と言う。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.util.Stack;

public class Sample
{
    public static void main( String[] args )
    {
        Stack stack = new Stack();
        // 3つデータを突っ込みます。
        stack.push( new Integer( 100 ) );
        stack.push( new Integer( 200 ) );
        stack.push( new Integer( 300 ) );
        System.out.println( stack.size() );
        // 3

        // 取り出します。
        System.out.println( stack.pop() );
        System.out.println( stack.pop() );
        System.out.println( stack.pop() );
        // 300
        // 200
        // 100

        // このように、一番最後に取得したものから取り出します。
        // 取り出したら、その取り出したものは取り除かれます。
        // これがスタックの特徴です。
        System.out.println( stack.size() );
        // 0
    }
}
// Sample.java
import java.util.Stack;

public class Sample
{
    public static void main( String[] args )
    {
        Stack stack = new Stack();
        // 3つデータを突っ込みます。
        stack.push( new Integer( 100 ) );
        stack.push( new Integer( 200 ) );
        stack.push( new Integer( 300 ) );
        System.out.println( stack.size() );
        // 3

        // 取り出します。
        System.out.println( stack.pop() );
        System.out.println( stack.pop() );
        System.out.println( stack.pop() );
        // 300
        // 200
        // 100

        // このように、一番最後に取得したものから取り出します。
        // 取り出したら、その取り出したものは取り除かれます。
        // これがスタックの特徴です。
        System.out.println( stack.size() );
        // 0
    }
}

この単語を含むページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/12/10
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。