Java对两个整数数组进行排序

时间:2017-05-13 00:25:30

标签: 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);
    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();
}

输出说

4024 4209 9254 8996 9017 6679 3412 6546 2682 42 
42 2682 3412 4024 4209 6546 6679 8996 9017 9254 
42 2682 3412 4024 4209 6546 6679 8996 9017 9254 

2 个答案:

答案 0 :(得分:1)

arrSort1arrSort都引用相同的数组,因此结果,您可能想要使用Arrays.copyOf

示例:

int[] arrSort1 = Arrays.copyOf(arrSort,arrSort.length);

答案 1 :(得分:0)

与C ++中的指针相同,您分配arrSort1 = arrSort然后它们指向内存中的相同位置。当你用一个做某事时,另一个也会改变。您可以在分配

之前尝试新建它