スタックがどのように機能するかは理解していますが、プッシュ、ポップ、ピークのメソッドを作成してから、ドライバー クラスに実装する必要があります。ここがややこしいところです。これが私のStack
クラスです:
public class Stack implements StackInterface
{
private final int ARRAY_SIZE = 9;
private String[] movies = new String[ARRAY_SIZE]; // Hold movie titles
private int top = 0;
/**
* Constructor
* @param moviesIn
*/
public Stack(String[] moviesIn)
{
movies = moviesIn;
}
/**
* Test for full stack
*/
public void push(String moviesIn)
{
if (top >= movies.length)
System.out.println("ERROR: Stack is full");
top++;
movies[top] = moviesIn;
}
/**
* Test for empty stack
*/
public String pop()
{
if (top == 0) {
System.out.println("ERROR: Stack is empty");
return " ";
}
top--;
return movies[top];
}
public void peek()
{
// ???
}
}
main()
これまでの方法で私が持っているものは次のとおりです。
public static void main(String[] args)
{
String[] movies = {"Amour", "*Argo", "Beasts of the Southern Wild", "Django Unchained", "Les Misérables", "Life of Pi", "Lincoln", "Silver Linings Playbook", "Zero Dark Thirty"};
Stack oscarStack = new Stack(movies);
oscarStack.push(movies);
}
オブジェクトをスタックに渡すことができると思っていましたが、そのようには機能しないようです。oscarStack
では、オブジェクトをスタックにプッシュするにはどうすればよいでしょうか。それとも、各弦を個別に押す必要がありますか? オンラインで調査を続けると、スタック コンストラクターは空のスタックしか作成できないようです。これがオブジェクト引数を渡すことができない理由ですか?