有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java堆栈显示方法,是否在堆栈顶部显示“0”?

有人能告诉我哪里出了问题吗?我正在创建一个堆栈数组。我几乎完成了,但是当我显示堆栈时,在顶部有一个额外的0?更让我困惑的是,当我调用'Peek'方法时,它会在堆栈顶部显示正确的数字,而不是0??(nextfree只是一个设置为0的整数,但这可能是我出错的地方??)

public void display()
{
 if ( isEmpty() == true ) 
    {
        System.out.println("\nArray is Empty!\n");
        return;
    }  
 for (int i = nextfree; i >=0; i--) 
     System.out.println(array[i]); 
}  

共 (2) 个答案

  1. # 1 楼答案

    不要从nextfree位置开始迭代;我假设这是下一个可用的位置,它“超出”堆栈顶部。原语类型的数组中未使用的位置被初始化为0,这就解释了额外打印的0

    从^{开始迭代

    for (int i = nextfree - 1; i >=0 ; i ) 
    
  2. # 2 楼答案

    nextFree指向下一个空闲位置,所以0来自空闲空间