ArrayList でスタックを
初歩的でツマラナイかもしれません。
import java.util.ArrayList; でスタックを実現するクラス"MyStack"を書きました。
フィールドは private ArrayList<Integer> stack = new ArrayList<Integer>(); のみという条件です。
MyStack.java
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
import java.util.ArrayList;
public class MyStack {
private ArrayList<Integer> stack = new ArrayList<Integer>();
// データを先頭に追加
public void push( int item ) {
stack.add( item );
}
// 先頭のデータを取り出す
public int pop( ) {
int rtn;
if( stack.isEmpty() ) {
System.out.println( "スタックは空です." );
System.exit( 1 );
}
rtn = stack.get( 0 );
stack.remove( 0 );
return rtn;
}
}
このMyStackを実行するクラス"MainForMyStack"を書きます。
実行結果は、標準出力に
43210
と出ることを想定しています。
MainForMyStack.java
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
import java.util.ArrayList;
public class MainForMyStack {
public static void main(String[] args) {
MyStack stack = new MyStack();
// 0,1,2,3,4 をスタックに追加
for( int i=0; i < 5; i++ ) {
stack.push( i );
}
// スタックのデータを先頭から取り出す
for( int i=0; i < stack.size(); i++ ) {
System.out.print( stack.pop() );
}
}
}
さて、MainForMyStack.java の
i < stack.size(); の箇所でエラーが出るのはなぜでしょう?
どなたかご教授の方お願いします。