首页 > 解决方案 > 我们不能将 void 数组转换为 int 数组吗?

问题描述

我声明了另一个数组并将 void 数组元素复制到该数组并继续寻求解决方案,但它显示我无法将 void 数组转换为 int 数组,为什么会这样显示?

static void minimumBribes(int[] q) {
    int[] arr=new int[q.length];
    int dif;
    for(int i=0;i<q.length;i++){
        arr[i]= q[i];
    }
     arr=Arrays.sort(arr);
     sol: for(int i=0;i<arr.length;i++){
       for(int j=0;j<arr.length;j++){
           if(q[i]==arr[j]){
               dif=Math.abs(i-j);
               if(dif >2){
                   System.out.println("Too chaotic");
                   break sol;
               }
            break;
           }
     }
     }
}

标签: javaarrays

解决方案


java.util.Arrays.sort() 方法不返回任何值。问题来了,因为线 arr=Arrays.sort(arr);

当你做 Arrays.sort(arr); 它覆盖了相同的 arr 数组。
请检查参考文档。函数Arrays.sort()对数组进行就地排序并返回void。代替

arr = Arrays.sort(arr);

只是

Arrays.sort(arr);

该函数对您传入的数组进行排序。如果您希望原始数组保持不变,请先使用创建一个副本Arrays.copyOf()


推荐阅读