所以我有一个方法来获取整数堆栈,并以相同的顺序返回所有重复元素的堆栈。我的问题是我目前拥有的方法,除了堆栈为空时之外,在所有情况下都会遇到无限循环问题。我该怎么做才能完成复制而不出现循环问题?
public void stutter(Stack<Integer> Integ)
{
Integer first;
for(int i = 0; i < Integ.size(); i++)
{
first = Integ.pop();
Integ.push(first);
Integ.push(first);
}
}
最佳答案
每次插入另一个整数时,都会增加堆栈的原始大小,从而向前推“i”限制。
您应该返回一个新的堆栈,最好使用(java8 之前的版本):
public Stack<Integer> stutter(Stack<Integer> from) {
Stack<Integer> stk = new Stack<>();
for(Integer i: from) {
stk.push(i);
stk.push(i);
}
return stk;
}
关于java - 复制堆栈中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35542425/