【发布时间】:2019-03-13 09:13:24
【问题描述】:
无法找出代码中的问题 它说线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 6 我经历了很多次,仍然无法弄清楚是什么问题
注意:尝试对数组中的 0、1 进行排序
public class javaarray {
public static void main(String[] args) {
int[] arr = new int[]{1, 0, 0, 1, 1, 0};
int left = 0, right =arr.length-1;
while(left<right) {
while(arr[left]==0 && left<right) {
left++;
}
while(arr[right]==1 && left<right){
right++;
}
if(left<right) {
arr[left]=0;
arr[right]=1;
left++;
right--;
}
}
for(int i=0; i<arr.length;i++) {
System.out.print(arr[i])
}
}
}
}
【问题讨论】:
-
最高元素应该是
5,因为它是从0开始的。您正在尝试访问6,因此出现错误。 -
在使用
left和right访问数组中的索引之前,您应该始终检查它们是否是有效索引。 -
将 for 循环限制为数组长度为 1:for(int i=0; i
标签: java arrays sorting indexoutofboundsexception