【发布时间】:2016-07-29 06:11:04
【问题描述】:
我想使用 Java 集合框架来反转队列。但我无法理解我该怎么做?
如何使用 java 集合框架反转 java 中的队列?
【问题讨论】:
标签: java collections queue
我想使用 Java 集合框架来反转队列。但我无法理解我该怎么做?
如何使用 java 集合框架反转 java 中的队列?
【问题讨论】:
标签: java collections queue
如果您使用 LinkedList 实现 java Queue,这非常简单:
LinkedList<String> queue = new LinkedList<>();
Collections.reverse(queue);
否则,您必须使用堆栈。将堆栈中队列的每个元素池化,然后将它们取出并重新添加到队列中。
public static <T> void reverse(Queue<T> queue) {
Deque<T> stack = new LinkedList<>();
while (!queue.isEmpty()) {
stack.push(queue.poll());
}
while (!stack.isEmpty()) {
queue.add(stack.pop());
}
}
【讨论】: