有人可以给我一些关于如何做到这一点的提示吗?
public static void QueueStack(Queue<Integer> q){
Stack<Integer> stack1 = new Stack<Integer>();
while(!q.isEmpty()){
int temp = q.dequeue();
stack1.push(temp);
}
Arrays.toString(stack1.toArray());
}
答案 0 :(得分:1)
您是否尝试过使用Stack类的toString()方法?
e.g。
stack1.toString();
或者您想要打印出特定格式吗?
答案 1 :(得分:0)
您可以尝试Vector
类Stack
类的get(int index)
方法,假设您不想在打印时弹出堆栈中的元素。
答案 2 :(得分:0)
您也可以将其与初始化方式非常相似。
while(!stack1.isEmpty())
{
int t= stack1.pop();
System.out.println(t);
}
答案 3 :(得分:0)
if (!tack1.isEmpty()) {
for(Object a : stack1) {
System.out.println(a);
}
}
答案 4 :(得分:0)
这里是一种将给定队列转换为堆栈的方法:
public static void QueueStack(Queue<Integer> queue){
Stack<Integer> stack = new Stack<>();
for(Integer in: queue){
stack.push(in);
}
//Here, the output would be same as you inserted elements.As stack uses iterator which prints elements as they are inserted(a bug in stack iteration)
System.out.println("Stack: "+stack);
//You can use java 8 for-each style as well.
stack.forEach(System.out::println);
//If you want to traverse stack in LIFO manner..
while(stack.isEmpty){
System.ou.println(stack.pop());
}
//For better performance ArrayDeque<>() is preferred!
Deque<Integer> stack = new ArrayDeque<Integer>();
}