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);
}
*/
戻る