java.util.Stackの基本的な使い方

戻る
$ java StackTest
[John]
[John] [Paul]
[John] [Paul] [George]
[John] [Paul] [George] [Ringo]
一番最後に追加された要素は、Ringo です。
既に、George はセットされています!
[John] [Paul] [George]
[John] [Paul]
[John]

取り出せる要素はもう残っていません!

--- ソース ---

import java.util.*;

/**
$Id: stacktest.html,v 1.1 2009/06/22 16:12:27 kishi Exp kishi $
@author KISHI Yasuhiro
*/

public class StackTest {

    static public void main( String[] args ) {
        Stack stack = new Stack();

        Element e1 = new Element( "John" );
        Element e2 = new Element( "Paul" );
        Element e3 = new Element( "George" );
        Element e4 = new Element( "Ringo" );

        push( stack, e1 );
        push( stack, e2 );
        push( stack, e3 );
        push( stack, e4 );

        // PEEKしてみる -- pop()のように要素を取り出さずに、参照のみ行う
        Element top = ( Element ) stack.peek();
        System.out.println( "一番最後に追加された要素は、" + top.getName() + " です。" );

        // 要素が既にある場合に同じものを追加した場合の動作確認
        push( stack, e3 );

        for ( int i = 0;i < 5;i++ ) {
            pop( stack );
        }
    }

    static public void push( Stack stack, Element e ) {
        if ( !stack.contains( e ) ) {
            stack.push( e );
            printAll( stack );
        } else {
            System.out.println( "既に、" + e.getName() + " はセットされています!" );
        }
    }

    static public void pop( Stack stack ) {
        if ( stack.size() > 0 ) {
            stack.pop();
            printAll( stack );
        } else {
            System.out.println( "取り出せる要素はもう残っていません!" );
        }
    }

    static public void printAll( Stack stack ) {
        Enumeration enumeration = stack.elements();
        while ( enumeration.hasMoreElements() ) {
            Element e = ( Element ) enumeration.nextElement();
            System.out.print( "[" + e.getName() + "] " );
        }
        System.out.println();
    }
}

/*
$ javap java.util.Stack
Compiled from "Stack.java"
public class java.util.Stack extends java.util.Vector{
    public java.util.Stack();
    public java.lang.Object push(java.lang.Object);
    public synchronized java.lang.Object pop();
    public synchronized java.lang.Object peek();
    public boolean empty();
    public synchronized int search(java.lang.Object);
}
 
$ javap java.util.Enumeration
Compiled from "Enumeration.java"
public interface java.util.Enumeration{
    public abstract boolean hasMoreElements();
    public abstract java.lang.Object nextElement();
}
 
$ javap java.util.Vector
Compiled from "Vector.java"
public class java.util.Vector extends java.util.AbstractList implements java.util.List,java.util.RandomAccess,java.lang.Cloneable,java.io.Serial
izable{
    protected java.lang.Object[] elementData;
    protected int elementCount;
    protected int capacityIncrement;
    public java.util.Vector(int, int);
    public java.util.Vector(int);
    public java.util.Vector();
    public java.util.Vector(java.util.Collection);
    public synchronized void copyInto(java.lang.Object[]);
    public synchronized void trimToSize();
    public synchronized void ensureCapacity(int);
    public synchronized void setSize(int);
    public synchronized int capacity();
    public synchronized int size();
    public synchronized boolean isEmpty();
    public java.util.Enumeration elements();
    public boolean contains(java.lang.Object);
    public int indexOf(java.lang.Object);
    public synchronized int indexOf(java.lang.Object, int);
    public synchronized int lastIndexOf(java.lang.Object);
    public synchronized int lastIndexOf(java.lang.Object, int);
    public synchronized java.lang.Object elementAt(int);
    public synchronized java.lang.Object firstElement();
    public synchronized java.lang.Object lastElement();
    public synchronized void setElementAt(java.lang.Object, int);
    public synchronized void removeElementAt(int);
    public synchronized void insertElementAt(java.lang.Object, int);
    public synchronized void addElement(java.lang.Object);
    public synchronized boolean removeElement(java.lang.Object);
    public synchronized void removeAllElements();
    public synchronized java.lang.Object clone();
    public synchronized java.lang.Object[] toArray();
    public synchronized java.lang.Object[] toArray(java.lang.Object[]);
    public synchronized java.lang.Object get(int);
    public synchronized java.lang.Object set(int, java.lang.Object);
    public synchronized boolean add(java.lang.Object);
    public boolean remove(java.lang.Object);
    public void add(int, java.lang.Object);
    public synchronized java.lang.Object remove(int);
    public void clear();
    public synchronized boolean containsAll(java.util.Collection);
    public synchronized boolean addAll(java.util.Collection);
    public synchronized boolean removeAll(java.util.Collection);
    public synchronized boolean retainAll(java.util.Collection);
    public synchronized boolean addAll(int, java.util.Collection);
    public synchronized boolean equals(java.lang.Object);
    public synchronized int hashCode();
    public synchronized java.lang.String toString();
    public synchronized java.util.List subList(int, int);
    protected synchronized void removeRange(int, int);
}
*/


戻る inserted by FC2 system