0
メソッド内で2D配列の列を変更して配列全体を変更して変更する必要がないかどうか疑問に思っていましたか?2D配列の列を1D配列のように変更する
public static void main(String[] args){
int[][] a = {{1,2,3},{4,5,6},{7,8,9}};
int[] b = reverse(new int[]{1,2,3});
System.out.println(Arrays.toString(b));
System.out.println(Arrays.deepToString(a));
System.out.println(Arrays.toString(new int[]{a[0][0],a[1][0],a[2][0]}));
System.out.println(Arrays.deepToString(a));
}
public static int[] reverse(int[] start)
{
int[] result = new int[start.length];
int x = 0;
for(int i= start.length-1; i >= 0; i --)
{
result[i] = start[x];
x ++;
}
return result;
}
現在のところ、それは、入力された数字が逆になりますが、a[0][0]
、a[1][0]
、そしてa[2][0]
の場所を変更しません。元の配列は同じままですが、作成された新しい配列は変更されます。どうすればこの問題を解決できますか?
良いことを説明ないため申し訳ありません。基本的には、私が入力した位置を取ってそれらを逆転させたいと思っています。たとえば、a [0] [0]、a [1] [1]、a [2] [2]を取り出し、それらを逆にして[[1,2,3]、[4,5、 6]、[7,8,9]]から[[7,2,3]、[4,5,6]、[1,8,9]] – blake
@blake私は自分の答えを更新しました。 – sorifiend