我不知道如何将所有内容叠加在一起。
我已经有:
Stack <Integer> stack = new Stack <Integer>();
stack.push(15);
stack.push(30);
int total = 0;
while (!stack.isEmpty()) {
print(total);
}
这重复打印了0。
答案 0 :(得分:0)
可以遍历Stack
和Iterator
。
另请参见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)
堆栈同时具有push
和pop
方法。 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);