Java对两个整数数组进行排序
我不明白为什么Java对两个整数数组进行排序,java,arrays,sorting,Java,Arrays,Sorting,我不明白为什么arrSort也会被排序,即使我没有声明要排序 arrSort1=arrSort并不意味着arrSort=arrSort1对吗 public static void main(String[] args) { int[] arrSort = {4024, 4209, 9254, 8996, 9017, 6679, 3412, 6546, 2682, 42}; int[] arrSort1 = arrSort; displayArray(arrSort);
arrSort
也会被排序,即使我没有声明要排序
arrSort1=arrSort
并不意味着arrSort=arrSort1
对吗
public static void main(String[] args) {
int[] arrSort = {4024, 4209, 9254, 8996, 9017, 6679, 3412, 6546, 2682, 42};
int[] arrSort1 = arrSort;
displayArray(arrSort);
displaySorted(arrSort1);
displayArray(arrSort);
}
public static void displayArray(int[] arrList){
for(int i = 0; i < arrList.length; i++)
System.out.print(arrList[i] + " ");
System.out.println();
}
public static void displaySorted(int[] arrSort1){
Arrays.sort(arrSort1);
for(int i = 0; i < arrSort1.length; i++){
System.out.print(arrSort1[i] + " ");
}
System.out.println();
}
arrSort1
和arrSort
都引用了相同的数组,因此可能需要使用结果
例如:
int[] arrSort1 = Arrays.copyOf(arrSort,arrSort.length);
这与C++中的指针是一样的,您分配
arrSort1=arrSort
,然后它们指向内存中的相同位置。当你用其中一个做某事时,另一个也会改变。您可以在分配之前尝试重新设置它
int[] arrSort1 = Arrays.copyOf(arrSort,arrSort.length);