我必须编写一个创建字符串队列的程序。它要求用户输入一个数字n,他必须在队列中输入n个名称。然后直到队列为空,程序
程序应该只使用add(),remove(),isEmpty()和element()方法。 这是我到目前为止所提出的:
package lesson1;
import java.util.*;
public class MyClass1{
public static void main(String[] args) {
Queue <String> strings= new LinkedList<String>();
Scanner input= new Scanner(System.in);
System.out.println("Please enter the number of names, n.");
int n= input.nextInt();
System.out.println("Please enter " +n+ " names");
for(int i=0;i<n; i++){
strings.add(input.next());
}
System.out.println("\nDisplaying the names:\n");
for(String object: strings){
System.out.println(object);
}
while(!strings.isEmpty()){
System.out.println("The name in front of the queue is: " + strings.element());
System.out.println("Please enter the number of names to be deleted:");
int del= input.nextInt();
for(int i=0; i<del; i++){
System.out.println("Name removed:"+strings.remove(i));
}
}
}
}
问题是它正在打印 false 以删除名称,因为remove()是一个布尔方法。我该如何解决这个问题?
答案 0 :(得分:-1)
poll
和remove
都返回已删除的对象,但如果出现问题,则poll不会抛出异常,其中没有一个返回布尔值。
for(int i=0; i<del; i++){
System.out.println("Name removed:"+strings.poll());
}