如何在java中的Queue前面添加一个元素?

nov*_*ice 2 java queue reverse deque

我正在使用Queue<T> q1并且我知道将q1.offer();在队列末尾添加一个元素。但是现在,我想要做的是在队列前面添加一个元素,这是队列无法实现的。我能想到的可能方法是

  • 使用双端队列,我可以在前面和最后添加元素。
  • 反转 q1,在队列末尾添加元素并再次反转。

现在,作为一个非程序员的人,我不确定如何编写这些方法;哪个更经济,更容易做。

我在 1) 中遇到的问题是将现有 Queue 转换为 Deque,反之亦然;并在 2) 如何使用Collections.reverseOrder();来反转现有的队列。

小智 7

以下是在集合中使用 deque 和 asLifoQueue 方法将元素添加到队列的第一个元素的方法。这将排列元素的最后顺序...

    public class Practice15 {

public static void main(String[] args) {


    Deque<Integer> dd=new ArrayDeque<Integer>();

    dd.offerFirst(123);

    dd.offerFirst(258);

    dd.offerFirst(125);

    System.out.println(dd);

    Queue<Integer> q1=Collections.asLifoQueue(dd);

    System.out.println(q1);

}
Run Code Online (Sandbox Code Playgroud)

}