首页 > 解决方案 > 2D Stack 实现,得到 NullPointerException

问题描述

我尝试像这样实现 2D Stack private Stack<Char>[][] objectGrid = (Stack<Char>[][]) new Stack[width][height]

但是,当我尝试将一个元素推送到我的堆栈时,我不断收到 NullPointerException (objectGrid[x][y]).push(ch) 我检查了调试器,并发现 objectGrid[x][y] 显示为 null,所以我不能对其进行推送。上面的初始化错了吗,我应该做一个for循环来初始化我的堆栈数组的第二维吗?

标签: javastack

解决方案


将初始化循环添加到您的代码中,如下所示:

for (int i = 0; i < width; i++) {
    for (int j = 0; j < height; j++) {
        objectGrid[i][j] = new Stack<Char>();
    }
}

推荐阅读