私はガス粒子のシミュレーションに取り組んでいます。
私の問題は、3つの2次元整数テーブルを作成したことです。1つは粒子の圧力値用で、もう2つは粒子のxおよびyの動きを表すためのものです。
私はarraycopyを作成してクローンを作成しましたが、それでもどういうわけかグローバルテーブルの値を変更することができます
private void translate() {
int [][] VectorXBuff = new int[500][500];
System.arraycopy(VectorX.clone(), 0, VectorXBuff, 0, VectorX.length);
int [][] VectorYBuff = new int[500][500];
System.arraycopy(VectorY.clone(), 0, VectorYBuff, 0, VectorX.length);
int [][] FieldBuff = new int[500][500];
System.arraycopy(FieldMatrix.clone(), 0, FieldBuff, 0, VectorX.length);
for (int y = 0; y < FieldMatrix.length; y++){
for (int x = 0; x < FieldMatrix.length; x++){
if(FieldBuff[x][y]!= 0 && FieldBuff[x][y]!= 9 ){
FieldBuff[x + VectorXBuff[x][y]][y + VectorYBuff[x][y]] = Integer.valueOf(FieldBuff[x][y]);
FieldBuff[x][y] = 0;
VectorXBuff[x + VectorXBuff[x][y]][y + VectorYBuff[x][y]] = Integer.valueOf(VectorXBuff[x][y]);
VectorYBuff[x + VectorXBuff[x][y]][y + VectorYBuff[x][y]] = Integer.valueOf(VectorYBuff[x][y]);
VectorXBuff[x][y] = 0;
VectorYBuff[x][y] = 0;
}
}
}
}