2017-05-13 1 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(); 
} 

출력은 당신이 Arrays.copyOf을 사용할 수 있습니다

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 그들은 메모리에 같은 장소를 가리키고 있습니다. 당신이 한 가지로 어떤 일을 할 때 다른 하나도 변할 것입니다. 할당하기 전에 새로 시도 할 수 있습니다.

1

모두 arrSort1arrSort은 따라서 결과를 같은 배열을 참조하고 말한다.

예 :

그것은 C++에서 포인터와 동일합니다
int[] arrSort1 = Arrays.copyOf(arrSort,arrSort.length); 
관련 문제