我在用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()处出错,我想知道为什么。我是否以错误的方式声明队列?提前致谢。我是新来排队的,所以请忍受我。

最佳答案

Java队列没有入队和出队方法,这些操作使用以下方法完成:

入队:

  • add(e):如果未能插入对象
  • 则抛出异常
  • offer(e):如果未能插入对象
  • ,则返回false

    出队:
  • remove():如果队列为空,则抛出异常
  • poll():如果队列为空,则返回null

  • 看一下队列中的第一个对象:
  • element():如果队列为空,则抛出异常
  • peek():如果队列为空,则返回null

  • Queue从Collection继承的add方法插入一个
    元素,除非会违反队列的容量限制,否则
    在这种情况下,它会抛出IllegalStateException。要约方法,即
    仅用于有界队列,不同于仅在
    表示无法通过返回false插入元素。

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

    您也可以检查此内容,因为它更有用:

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

    08-05 05:38