如何将堆栈中的所有数字加在一起,然后打印总数?

时间:2019-04-13 18:35:22

标签: java stack processing

我不知道如何将所有内容叠加在一起。

我已经有:

  Stack <Integer> stack = new Stack <Integer>();
  stack.push(15);
  stack.push(30);
  int total = 0;
  while (!stack.isEmpty()) {
     print(total);
  }

这重复打印了0。

2 个答案:

答案 0 :(得分:0)

可以遍历StackIterator。 另请参见Java - How to Use Iterator?

创建一个循环,该循环使用Iterator遍历元素。堆栈及其内容未修改。

打印元素:

Iterator<Integer> it = stack.iterator();
while (it.hasNext()) {
    Integer value = it.next();
    println(value);
}

或计算元素的总和:

Iterator<Integer> it = stack.iterator();
int total = 0;
while (it.hasNext()) {
    total += it.next();
}
print("total: ", total);

示例代码:

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

Stack <Integer> stack = new Stack <Integer>();
stack.push(15);
stack.push(30);

Iterator<Integer> it = stack.iterator();
while (it.hasNext()) {
    Integer value = it.next();
    println(value);
}

it = stack.iterator();
int total = 0;
while (it.hasNext()) {
    total += it.next();
}
print("total: ", total);

答案 1 :(得分:0)

堆栈同时具有pushpop方法。 push方法将对象下推到堆栈上,而pop方法将顶部对象弹出堆栈。每次调用请求都会使堆栈大小增加1,而每次弹出都会使堆栈大小减少1。

只需对您的代码进行少量修改,我们就可以总计已添加到堆栈中的所有数字。

 import java.util.Stack;

 Stack <Integer> stack = new Stack <Integer>();
  stack.push(15);
  stack.push(30);
  int total = 0;
  while (!stack.isEmpty()) {
    total += stack.pop();
  }
  print(total);