使用Java从队列中删除var

时间:2018-05-04 18:46:11

标签: java linked-list

要编写一个获取Queue和参数(int)的函数,该函数会删除Queue中与参数相等的var。这是我的代码:

 public static void remove_it( Queue <Integer> q, int x)
{

    Queue <Integer> temp = new LinkedList<Integer>();
    boolean found = false;
    if (!q.isEmpty())
    {
        if (q.peek()==x)
            found = true;
        temp.add(q.remove());
    }

   boolean b;
    if (found)
    {
     b = true;

    while (!temp.isEmpty())
    {
        if (temp.peek() == x  && b)
            {
                temp.remove();
                b = false;
            }
        else
            q.add(temp.remove());
    }
   }

    }

但是,随时删除队列的第一个变量......为什么会这样?

1 个答案:

答案 0 :(得分:5)

要修复您的错误,请将其全部替换为一行:

public static void remove_it(Queue <Integer> q, int x) {
    q.remove(x);
}