[英]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.