Java语言高分悬赏:如何将一个queue中的数据存放在stack里面实现reverse

Java语言高分悬赏:如何将一个queue中的数据存放在stack里面实现reverse

由于队列和堆栈是两种结果,队列是先进后出的,直接将队列的元素压入站后,再一一出栈后就实现队列元素翻转了。
Java 的 Stack 和 Queue ,都有现成的 API ,直接用就可以:https://www.runoob.com/java/data-queue.html

q: queue
s: stack

while ( ! q.empty()) {
  x = q.dequeue();
    s.push(x);
}

while( !s.empty()) {
  x = s.pop();
    q.enqueue(x);
}

以次将queue的元素取出放进stack里边,直到queue为空
然后再将stack里的元素以次取出,放到 queue里边去就可以了,
这是queue里的元素就是原来的逆序

public class QueueToStack {

    public static <T> void reverse(Queue<T> queue, Stack<T> stack){
        while(!queue.isEmpty()){
            stack.push(queue.poll());
        }
    }

    public static void main(String[] args) {
        Queue<String> queue = new ArrayDeque<>(Arrays.asList("1","2","3"));
        Stack<String> stringStack = new Stack<>();
        reverse(queue,stringStack);
        while(!stringStack.empty()){
            System.out.println(stringStack.pop());
        }
    }
}

望大佬采纳