int[] a = new int[] {7,2,1,10,8,9};
int[] b = a;
Arrays.sort(b);
b の並べ替え操作の後に両方の配列が並べ替えられるのはなぜですか。ソートされるのは b だけであってはなりませんか?
int[] a = new int[] {7,2,1,10,8,9};
int[] b = a;
Arrays.sort(b);
b の並べ替え操作の後に両方の配列が並べ替えられるのはなぜですか。ソートされるのは b だけであってはなりませんか?
配列が 1 つしかないためです。"a" と "b" は、同じ配列への参照のみです。
clone メソッドを使用して値をコピーすると、a と b は異なる配列になり、b だけがソートされます。
a
とb
は同じ配列への参照であるためです。あなたがするとき
int[] b = a;
配列のコピーを作成しているのではなく、同じ配列への参照をコピーしているだけです。
と の両方が同じ配列オブジェクトb
をa
指しています。したがって、両方とも同じ配列です。
a を b に割り当てると、配列への参照のみが割り当てられるためです。メモリ内には配列が 1 つしかないため、それを変更すると、どこからアクセスしても変更されます。