我们不能将void数组转换为int数组吗?

时间:2019-05-05 05:52:57

标签: java arrays

我声明了另一个数组,并将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;
           }
     }
     }
}

1 个答案:

答案 0 :(得分:1)

java.util.Arrays.sort()方法不返回任何值。 由于行arr=Arrays.sort(arr);

,问题来了

当您执行Arrays.sort(arr);时它会覆盖相同的arr数组。
请检查参考文档。函数Arrays.sort()对数组进行排序并返回void。替换

arr = Arrays.sort(arr);

Arrays.sort(arr);

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