如何解决如何切换数组中的两个组件?
我想知道如何切换数组中的组件。我的目标是按数字顺序重新排列这个数组,但是当我尝试时它不断抛出异常 “Index 22 out of bounds for length 9”
for (int i = 0; i < intArray.length - 1; i++) {
for (int j = 1; j < intArray.length - 1; j++)
if (intArray[j - 1] > intArray[j]) {
swap(intArray[j - 1],intArray[j],intArray);
}
System.out.print(intArray[i]);
System.out.print(",");
}
public static void swap(int a,int b,int[] arr) {
int x = arr[a];
arr[a] = arr[b];
arr[b] = x;
}
解决方法
尝试传入索引而不是数组的值
即改变
if (intArray[j-1] > intArray[j]){
swap(intArray[j-1],intArray[j],intArray);
}
到
if (intArray[j-1] > intArray[j]){
swap(j-1,j,intArray);
}
此外,您的最外层循环比 intArray
的最后一个元素少运行 1 个。
你可以使用
for (int i = 0; i < intArray.length; i++)
代替
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。