public void reOrderArray(int [] a) {
int i=0;
int j=0;
int l=a.length;
while(i<l&&j<l){
while(a[i]%2==1)
i++;
while(a[j]%2==0)
j++;
if(i<j&&i<l&&j<l)
swap(a,i,j);
else
j++;
}
}
public void swap(int[] a,int i,int j){
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
懂了!在while循环里的两个小while循环内也应该加入i<l和j<l的判断。因为判断的时候越界也会报错