需要一些java堆栈的帮助

use*_*170 0 java stack

不得不说我是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
   }
Run Code Online (Sandbox Code Playgroud)

我对前三行的想法有所了解,但我对下面的线条有所了解.

     maxSize = s;             // set array size

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

     top = -1;                // no items yet
Run Code Online (Sandbox Code Playgroud)

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

也就是为什么在推(长j)上使用长j没有与j相关的变量.

感谢帮助和评论.

dan*_*dev 7

我建议搜索一些网站或书籍并从头开始,尝试跳入并理解一切都不适合大多数人,但回答你的问题:

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

long j使用,因为这意味着方法必须在某点被称为push(1.0)它调用推送方法,并传递在1.0作为j.然后它将它放在顶部+1位置的数组中.