0

スター・ウォーズのチケット3枚を7枚のグループにランダムに配置して、合計10枚のチケットを作成する方法を作成しました。また、チケットを「Line」の次の人に割り当てるメソッドも作成する必要があります。印刷しようとすると、EmptyStackException がスローされ、その理由がわかりません。スタックをメイン メソッドに移動する方法はありますか?

これまでのコードは次のとおりです。どこが間違っているのか疑問に思っています。私を正しい方向に導いてください。ありがとうございました。

import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;


public class movieRaffle {

public static void main(String[] args) {

    Queue<String> queue = new LinkedList<String>();
    queue.offer("Megan");
    queue.offer("Kate");
    queue.offer("Conan");
    queue.offer("Jay");
    queue.offer("Bert");
    queue.offer("Ernie");
    queue.offer("Mickey");
    queue.offer("Goofy");
    queue.offer("Optimus");
    queue.offer("Megatron");

    Stack<String> ticketList = new Stack<>();

    while(queue.size() > 0)
    System.out.println(queue.remove() + " wins tickets to " + ticketList.pop());

}

public static void ticketList() {
    Stack<String> tickets = new Stack<String>();
    tickets.push("Olympus Has Fallen");
    tickets.push("Jurassic Park");
    tickets.push("The Patriot");
    tickets.push("Matrix");
    tickets.push("Gettysburg");
    tickets.push("Gods and Generals");
    tickets.push("White House Down");
    tickets.add((int) (Math.random() * 10), "Star Wars");
    tickets.add((int) (Math.random() * 10), "Star Wars");
    tickets.add((int) (Math.random() * 10), "Star Wars");
}

}
4

3 に答える 3

0

return typeofticketList()メソッドをStack<String>次のように変更します。

public static Stack<String> ticketList() {
        Stack<String> tickets = new Stack<String>();
        ...
        return tickets;
    }

ticketList次に、返された値をメイン メソッドに割り当てます。

Stack<String> ticketList = ticketList();
于 2013-10-30T03:03:09.740 に答える
0

問題は、現在空の を作成していることですStack。メソッドticketList()は、作成した を返す必要がStackあります。

public static Stack<String> ticketList() {
    ...
    ...
    return tickets;
}

次に、 で を作成するStackと、次のmainように実行できます。

Stack<String> ticketList = ticketList();
于 2013-10-30T03:02:02.173 に答える