我有一個2維陣列和堆棧:推(INT [] [])中的堆疊被複制相同的值的Java
int[][] data = new int[][];
Stack<int[][]> undoList = new Stack<int[][]>(10);
我想每次更改後的數據添加到保持在撤消列表:
undoList.push(data);
// some changes to data array
undoList.push(data);
// some changes to data array
undoList.push(data);
那麼爲什麼所有的堆棧元素都有相同的值?
看起來像你使用存儲在'data'相同的參考。在將它推入你的'Stack'之前創建一個新的'int [] []'。 – 2014-08-29 16:51:20
這當然是複製副本的重複...但我沒有設法找到這條鏈的開始。 – Marco13 2014-08-29 16:52:41
@ Marco13是data.clone()在這裏工作嗎? – MBH 2014-08-29 16:54:32