Java 为什么array=array1等于array1=array?

Java 为什么array=array1等于array1=array?,java,arrays,sorting,Java,Arrays,Sorting,我正在尝试检查传递的数组是否已排序: public static boolean isSorted(int[] list){ boolean isSorted = true; int[] arr = list; selectionSort(arr); for (int i = 0; i < list.length; i++) { if (arr[i] != list[i]){ isSorted = false;

我正在尝试检查传递的数组是否已排序:

public static boolean isSorted(int[] list){
    boolean isSorted = true;
    int[] arr = list;
    selectionSort(arr);

    for (int i = 0; i < list.length; i++) {
        if (arr[i] != list[i]){
            isSorted = false;
            break;
        }


        }
     return isSorted;
    }
我传递了数组列表并使数组arr等于list,结果是数组列表在排序后变为等于数组arr

java的规则是什么?我应该如何将arr从列表中分离出来?

int[]arr=list;不复制数组,它只声明一个指向同一数组实例的变量

您需要使用int[]arr=list.clone;或int[]arr=Arrays.copyOfarr,0,arr.length

但是请注意,您不需要对数组进行排序来检查它是否已排序:只需检查每个元素,看看下面的元素是否更小

for (int i = 0; i < arr.length - 1; ++i) {
  if (arr[i + 1] < arr[i]) return false;
}
return true;
int[]arr=列表;不复制数组,它只声明一个指向同一数组实例的变量

您需要使用int[]arr=list.clone;或int[]arr=Arrays.copyOfarr,0,arr.length

但是请注意,您不需要对数组进行排序来检查它是否已排序:只需检查每个元素,看看下面的元素是否更小

for (int i = 0; i < arr.length - 1; ++i) {
  if (arr[i + 1] < arr[i]) return false;
}
return true;

int[]arr=列表;不复制数组。您需要使用int[]arr=list.clone;或int[]arr=Arrays.copyOfarr,0,arr.length;。int[]arr=列表;不复制数组。您需要使用int[]arr=list.clone;或int[]arr=Arrays.copyOfarr,0,arr.length;。简单地说是的,但为什么列表在我只使用arr的情况下进行转换?@CODE1010101010101我不知道如何解析你的评论。简单地说是的,但为什么列表在我只使用arr的情况下进行转换?@CODE1010101010101我不知道如何解析你的评论。