繁体   English   中英

需要一些有关Java堆栈的帮助

[英]Need some assistance with java stacks

不得不说我是Java的新手。 最近,我正在研究使用Java实现考试的数据结构。 通过基于数组的堆栈时,我发现下面的代码。

    class StackX {

    private int maxSize;        // size of stack array
    private long[] stackArray;
    private int top;            // top of stack

   //-------------------------------------------------------------

    public StackX(int s)         // constructor
    {
    maxSize = s;             // set array size
    stackArray = new long[maxSize];  // create array
    top = -1;                // no items yet
    }


   //-------------------------------------------------------------
   public void push(long j)    // put item on top of stack
   {
   stackArray[++top] = j;     // increment top, insert item
   }

我对前三行的用途有所了解,但在理解以下几行时遇到了麻烦。

     maxSize = s;             // set array size

     stackArray = new long[maxSize];  // create array

     top = -1;                // no items yet

有人可以解释为什么在数据类型为long的数组中使用[maxSize]吗? 因为数据类型很长,所以它不应该是数字的。

也是为什么在push(long j)上使用long j没有与j相关联的变量。

帮助和评论表示赞赏。

我建议搜索一些网站或书籍,并从头开始,尝试跳入并了解所有内容对大多数人而言并不奏效,但要回答您的问题:

stackArray = new long[maxSize]; 创建一个大小为'maxsize'的新数组,该数组可以容纳long类型的变量。 'maxsize'是int类型,它是一个整数,并且数组中只能包含整数个元素。

long j是因为它意味着必须在某个时刻调用方法push(1.0) ,该方法将调用push方法并以j传入1.0 然后将其放置在数组中+1的位置。

有人可以解释为什么在数据类型为long的数组中使用[maxSize]吗? 因为数据类型很长,所以它不应该是数字的。

maxSize是一个整数变量,用于指定创建的数组的大小。 所以这条语句:

stackArray = new long[maxSize];

创建一个具有maxSize元素(例如20)的元素,然后将该数组的引用分配给stackArray变量。

目前还不清楚您期望的是什么,但是我建议阅读有关数组Java教程部分

也是为什么在push(long j)上使用long j没有与j相关联的变量。

此方法声明:

public void push(long j)

有一个名为j参数 这意味着无论何时调用该方法,都必须传递一个long值作为该方法的参数 该方法调用的参数初始值与您传入的值相同。从那时起,它就像该方法的局部变量一样。 同样, 有关方法Java教程可能会对您有所帮助。

有人可以解释为什么在数据类型为long的数组中使用[maxSize]吗? 因为数据类型很长,所以它不应该是数字的。

尽管您的数组可能被声明为long类型,但是索引仍然是int 无论您的数组是什么类型,索引都是int 请参阅此页面上的示例以获取更多信息。

也是为什么在push(long j)上使用long j没有与j相关联的变量。

查找调用此方法push()的代码,您将找到与j相关联的变量。 而且由于数组是long类型的,因此当您将元素放入this(push)中时,它们也必须是long类型的。 因此, long j

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM