gpt4 book ai didi

java - 使用 java.util.Stack.iterator 显示堆栈内容

转载 作者:行者123 更新时间:2023-12-02 06:18:24 25 4
gpt4 key购买 nike

在下面的代码中,我分别将 1,5,3 插入堆栈,意味着顶部 3 位于堆栈顶部,1 位于堆栈底部(就是这种情况),但是当我使用迭代器显示内容时堆栈,迭代器显然将堆栈视为队列并且

而不是显示

3<-5<-1<-底部!

它输出:

1<-5<-3<-底部!

为什么迭代器要这样做?

如果这是迭代器的自然行为,那么我如何在不使用 pop 的情况下显示堆栈的内容?

import java.util.Iterator;
import java.util.Stack;

public class MyStack{

Stack<Integer> stack = new Stack<>();

public void display(){
Iterator <Integer> it = stack.iterator();
while(it.hasNext()){
System.out.print(it.next()+"<-");
}
System.out.println("Bottom!");
}


void pushAll(int [] data){
for(int i:data){
stack.push(i);
}
}


public static void main(String [] org){
MyStack stak= new MyStack();
stak.pushAll(new int [] {1,5,3});
stak.display();
}


}

控制台:

1<-5<-3<-Bottom!

虽然它应该输出:

3<-5<-1<-Bottom!

最佳答案

黑客的方法是使用 listIterator 并从末尾开始:

ListIterator<Integer> it = stack.listIterator(stack.size());
while(it.hasPrevious()){
System.out.print(it.previous()+"<-");
}
System.out.println("Bottom!");

关于java - 使用 java.util.Stack.iterator 显示堆栈内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21247108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com