java - 复制堆栈中的元素?

标签 java stack queue

所以我有一个方法来获取整数堆栈,并以相同的顺序返回所有重复元素的堆栈。我的问题是我目前拥有的方法,除了堆栈为空时之外,在所有情况下都会遇到无限循环问题。我该怎么做才能完成复制而不出现循环问题?

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/

相关文章:

java - 为浏览器提供文件下载的输入流

java - 添加堆栈但不单独添加

design-patterns - 领导者/追随者与工作队列

node.js - 无法在Windows中通过npm安装 Node ZeroMQ

java - 如果我的 Ehcache 配置了 TTL,我是否需要检查检索到的元素是否过期?

java - 在测试中使用Java + Spring + Cucumber 框架相对于核心Java + Cucumber 框架有哪些优势?

java - 如何使用Java获取硬盘序列号?

c - 如何确定堆栈上的返回地址?

java - 堆栈中将存储多少调用?

c++ - 使用两个堆栈实现队列 - 出列测试问题?