我一直在使用BlueJ一段时间,最近,我们已经开始在课堂上制作和使用Stacks和Arrays。这基本上是我目前要做的事情:
创建类“StackTest”,其中包含一个名为“zahlen”的堆栈,其值为“Integer”。分别将数字5,10,50和30添加到堆栈。最后,运行Stack,它应该在控制台中显示大于10的所有值。
他们还为我们提供了必须在课堂上至少使用过一次的某些关键字:Keywords
import java.util.Stack;
public class StackTest
{
public StackTest(){
Stack zahlen = new Stack();
zahlen.push(5);
zahlen.push(10);
zahlen.push(50);
zahlen.push(30);
while (!zahlen.isEmpty()){
if(zahlen.top()>10){
}
zahlen.pop();
}
}
}
我的问题是,首先,我不知道括号中的整数究竟是什么或者它可以用于什么(谈论(Integer)
)而且我也不知道如何检查如果最高号码(zahlen.top()
)可以在if命令中使用。
答案 0 :(得分:0)
我认为在官方Java文档中阅读Stack类是非常值得的:
https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html
它可能有点密集,但它包含许多有用的信息。无论使用BlueJ,Eclipse还是任何其他IDE,这都将为您提供所需的信息。 : - )
答案 1 :(得分:0)
堆栈遵循LIFO规则(Last-In-First-Out)。想象一堆像你想要清洁的脏盘一样,要清理一个盘子,你需要在盘子顶部拿一个盘子,而不是到达底部或中间。在你的情况下,而不是一堆脏盘子,它是一堆整数。
一旦你创建了你的堆栈集合,你的代码示例中的push()
元素就会进入堆栈,它看起来像这样:
|30|
|50|
|10|
|5 |
¯¯
请注意,您无法访问堆栈顶部之外的任何元素(在本例中为30)。要访问下面的元素,您必须pop()
堆栈,它将从集合中删除它。
例如:
int value = zahlen.pop();
将使值等于30,并且您的新堆栈集合将如下所示:
| |
|50|
|10|
|5 |
¯¯
您现在可以使用值来检查它是否大于10然后使用
System.out.println()
将值打印到控制台,只需将其循环直到堆栈为空。如果你想查看堆栈顶部的值而不将其弹出,你可以使用peek()方法。