5

私はJavaでキューをやっています。これが私のコードです:

public class ListQueue {
public static void main(String[] args){
    Queue myQueue;
    Scanner sc = new Scanner(System.in);
    String input;
    int choice = 99;
    do{
        System.out.println("================");
        System.out.println("Queue Operations Menu");
        System.out.println("================");
        System.out.println("1,Enquene");
        System.out.println("2,Dequeue");
        System.out.println("3,Empty?");
        System.out.println("4,Count?");
        System.out.println("5,View Queue");
        System.out.println("0, Quit\n");
        System.out.println("Enter Choice:");
        try{
            choice = sc.nextInt();
            switch(choice){
            case 1:
                System.out.println("Please enter name: ");
                input = sc.next();
                myQueue.enqueue(input);
                System.out.println(input + "is successful queued");
                break;
            case 2:
                if(myQueue.isEmpty()){

                }
                break;
            case 3:
                if(myQueue.isEmpty()){
                    System.out.println("Queue is empty");
                }else{
                    System.out.println("Queue is not empty");
                }
                break;
            case 4:
                System.out.println("Number of people is " + "the queue" + myQueue.size());
                break;
            case 5:
                if(!myQueue.isEmpty())
                    myQueue.viewQueue();
                else
                    System.out.println("Queue is empty");
                break;
            case 0:
                System.out.println("Good-bye");
                break;
            default:
                    System.out.println("Invalid choice");
            }
        }
        catch(InputMismatchException e){
            System.out.println("Please enter 1-5, 0 to quit");
            sc.nextLine();
        }
    }while(choice != 0);
}

}

しかし、enqueue() と viewQueue() でエラーが発生しましたが、これはなぜでしょうか。間違った方法でキューを宣言していますか? 前もって感謝します。私はキューに入るのが初めてなので、ご容赦ください。

4

4 に答える 4

13

Java キューには enqueue メソッドと dequeue メソッドがありません。これらの操作は次のメソッドを使用して行われます。

エンキュー:

  • add(e): オブジェクトの挿入に失敗した場合、例外をスローします
  • offer(e): オブジェクトの挿入に失敗した場合は false を返します

デキュー:

  • remove(): キューが空の場合は例外をスローします
  • poll(): キューが空の場合は null を返します

キューの最初のオブジェクトを見てください。

  • element(): キューが空の場合は例外をスローします
  • peek(): キューが空の場合は null を返します

Queue が Collection から継承する add メソッドは、キューの容量制限に違反しない限り要素を挿入します。違反した場合は をスローしIllegalStateExceptionます。offer メソッドは、バインドされたキューでの使用のみを目的としており、false を返すことによって要素の挿入に失敗したことを示すという点でのみ add と異なります。

(参照: http://docs.oracle.com/javase/tutorial/collections/interfaces/queue.html )

これはより便利なので、これを確認することもできます。

http://docs.oracle.com/cd/B10500_01/appdev.920/a96587/apexampl.htm

于 2013-07-09T12:39:05.160 に答える