Java:从队列中删除指定数量的元素

时间:2015-06-27 20:12:34

标签: java queue

我必须编写一个创建字符串队列的程序。它要求用户输入一个数字n,他必须在队列中输入n个名称。然后直到队列为空,程序

  1. 在队列顶部显示名称
  2. 询问用户要删除的名称。
  3. 删除指定的名称数
  4. 显示已删除的姓名
  5. 程序应该只使用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()是一个布尔方法。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

pollremove都返回已删除的对象,但如果出现问题,则poll不会抛出异常,其中没有一个返回布尔值。

 for(int i=0; i<del; i++){

        System.out.println("Name removed:"+strings.poll());

       }