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我不知道如何解析你的评论。