我正在使用Queue<T> q1
,我知道将在队列末尾使用q1.offer();
添加一个元素。但是现在,我想要做的是在队列前面添加一个元素,这在Queue中是不可能的。我能想到的可能方法是
现在,作为一名非程序员,我不确定如何编写这些方法;哪一个更经济,更容易做。
我在1)中面临的问题是将现有队列转换为Deque,反之亦然;在2)如何使用Collections.reverseOrder();
来反转现有的队列。
答案 0 :(得分:3)
以下是使用集合中的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);
}
}
答案 1 :(得分:1)
如果你必须在前面插入一个元素,Queue
肯定不是解决方案。转到double ended queue
。
答案 2 :(得分:1)
如果您使用&#34;队列q1&#34; - 这只是变量 q1 的声明,而 Queue 本身只是一个接口。你可能想要使用Queue的一些实现吗?
查看Java API:http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html)