我在用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)
:如果未能插入对象出队:
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