Я сделал класс, содержащий arraylist. значения добавляются правильно. когда я пытаюсь получить значения, он всегда возвращает одно и то же значение.Почему ArrayList всегда возвращает такое же значение ..?
public class Data {
public ArrayList<Piece[][]> allMoves=new ArrayList<Piece[][]>();
public Data() {
}
}
Другие части кода, чтобы добавить и получить доступ к его значения являются следующие
public void save_this_move()
{
Piece temp[][]=new Piece[8][8];
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
temp[i][j]=board[i][j];
//System.out.print(temp[i][j].get_name()+" ");
}
//System.out.println();
}
allMoves.add(temp);
//System.out.println(".................");
}
и
public void undo()
{
for(int i=0;i<allMoves.size();i++)
{
Piece temp[][]=allMoves.get(i);
System.out.println(i+"th index");
for(int j=0;j<8;j++)
{
for(int k=0;k<8;k++)
{
System.out.print(temp[j][k].get_name()+" ");
}
System.out.println();
}
}
}
Пожалуйста, помогите мне, как это исправить ??
Таким образом, переместить инициализацию кусок внутри цикла – keyser
@MohammadS .: Это создает новый массив. Однако 'temp [i] [j] = board [i] [j]' просто копирует ссылки из одного массива в другой. – NPE
метод save_this_move вызывается каждый следующий экземпляр. я не понял, как я могу его решить –