私はJavaに少し慣れていないので、ノードの配列をスタックに入れるのに問題があります。
myNode
ここでは、s の配列を保持するグローバルとスタックを作成しますmyNode
。
static myNode[][] cells = new myNode[9][9];
static Stack<myNode[][]> myStack = new Stack<myNode[][]>();
配列内の各要素をインスタンス化し、以下を設定しますcells[row][column].values
。
for(int row = 0; row < 9; row++) {
for(int column = 0; column < 9; column++)
{
//instantiate each element
cells[row][column] = new myNode();
cells[row][column].initialize();
//set myNodes values of each element from given input
String value = txt[row][column].getText(); //gets string from JTextBox
if (!value.equals("")) //empty cells will equal 0;
{
cells[row][column].value = Integer.parseInt(txt[row][column].getText());
}
}
}
私はセル配列をプッシュしようとしましたが、後で元に戻しました (これは間違っているのでしょうか?):
cells[0][0].value = 9;
//push cells (save state)
myStack.push(cells);
//change cells
cells[0][0].value = 12345; //for example
//pop cells (revert state)
cells = myStack.pop();
System.out.println(Integer.toString(cells[0][0].value)); //will print 12345!
しかし、これは目的の 9 ではなく 12345 の値を出力し、私が直面している問題を示しています。私は何を間違っていますか?スタックにポインタをプッシュしているためですか?