You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java二维栈数组单栈添加元素异常问题求助

问题解答

问题的核心不是Stack类内部的列表是static的,而是你把同一个Square栈实例赋值给了二维数组的所有元素:

  • 你创建的那个push(0)的Square栈是一个独立对象,在内存中只有一份。
  • 当你在FillBoard方法里把这个栈赋值给GameBoard的每个位置时,并没有为每个位置生成新的栈,只是把同一个对象的引用复制给了数组的所有元素。
  • 这意味着GameBoard里的所有元素本质上都指向同一个栈实例,不管你通过哪个索引操作,都是在修改同一个栈,所以push(1)后所有“栈”都会显示有1——它们本来就是同一个东西。

解决方法很简单:不要复用同一个栈对象,而是为数组的每个位置单独创建新的Square栈实例:

// 示例代码(Java)
for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        Square stack = new Square();
        stack.push(0);
        GameBoard[i][j] = stack;
    }
}

内容的提问来源于stack exchange,提问作者Thomas Cameron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:45:29