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被排序?奇怪的排序行为
因为它只有一个数组。 “a”和“b”只是对同一个数组的引用。
如果您要使用克隆方法来复制值,那么a和b将是不同的数组,并且只有b会被排序。
b
两者并a
指向相同的阵列对象。所以他们都是同一个阵列。
因为指定a只给b指定数组。内存中只有一个数组,所以无论您访问哪个数组,它都会改变它。
由于a
和b
是到同一阵列的引用。当你做
int[] b = a;
你不是你的数组的副本,你只是复制一个引用到同一个数组。
没有_both arrays_,因为只有一个数组有两个引用。 – jlordo 2013-02-20 10:34:39