나는 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 메소드는 다음 인스턴스마다 호출됩니다. 나는 그것을 해결할 수있는 방법을 얻지 못했다. –