如何在BlueJ上正确地使用整数堆栈?

时间:2017-11-19 21:09:39

标签: java bluej

我一直在使用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命令中使用。

2 个答案:

答案 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()方法。