java - 我们不能将 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;
}
}
}
}
解决方案
java.util.Arrays.sort() 方法不返回任何值。问题来了,因为线 arr=Arrays.sort(arr);
当你做 Arrays.sort(arr); 它覆盖了相同的 arr 数组。
请检查参考文档。函数Arrays.sort()
对数组进行就地排序并返回void
。代替
arr = Arrays.sort(arr);
只是
Arrays.sort(arr);
该函数对您传入的数组进行排序。如果您希望原始数组保持不变,请先使用创建一个副本Arrays.copyOf()
。
推荐阅读
- laravel - Laravel Route 未为 registercontroller 定义
- angular - 如何遍历数组并使用角度rxjs计算总和
- ssl - 如何禁用 SSL 2.0 和 3.0
- powerbi - 从字符串中提取域名
- c# - 无法在服务中检测到计算机睡眠
- javascript - 使用打字稿前端应用程序加载外部库
- quanteda - Quanteda 语料库分段文档
- office365 - 启用 2 因素身份验证后丢失 Office 365 开发人员管理员帐户
- javascript - ReactJS - 事件未定义,它不会呈现 onChange 事件?
- angular - Jest Angular svg 模板