2017-05-13 6 views
0

並べ替えが宣言されていないのにarrSortがソートされたのはなぜ分かりませんか?Javaは両方の整数配列を並べ替えます

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 

答えて

0

それから、彼らはメモリ内の同じ場所にポイントしているあなたがarrSort1 = arrSortアサインされている、C++でのポインタと同じです。あなたが何かをすると、もう一方が変わるでしょう。あなたは割り当てようとする前に新しいことを試みるかもしれません

1

両方arrSort1arrSortが故に、結果を同じ配列を参照していると言う、あなたはArrays.copyOfを使用する場合があります。

例:

int[] arrSort1 = Arrays.copyOf(arrSort,arrSort.length); 
関連する問題