Java 在数组中删除。。代码错误

Java 在数组中删除。。代码错误,java,Java,当我编写此代码时,不会出现任何错误,但在编译时>>给我错误>>这有什么问题 public static void main (String args []){ int arr[] = {20 , 30 ,40 , 50 , 60 ,200 }; int searchKey = 20 ; for (int i = 0 ; i < arr.length ; i++ ){ if (arr[i]== searchKey){

当我编写此代码时,不会出现任何错误,但在编译时>>给我错误>>这有什么问题

public static void main (String args []){
    int arr[] = {20 , 30 ,40 , 50 , 60 ,200 };

    int searchKey = 20 ; 


    for (int i = 0 ; i < arr.length ; i++ ){

        if (arr[i]== searchKey){
            System.out.println(searchKey + "found");
            for(int z = i ; z < arr.length ;z++){
                arr[z] = arr[z+1];
            }
            for(int k=0 ; k<arr.length ; k++)
                System.out.print(arr[k] + " ");

            break;
        }
        else if (i ==  (arr.length-1) ) {
             System.out.print(searchKey+  " not found");
             break;
        }
    }

}
publicstaticvoidmain(字符串参数[]){
int arr[]={20,30,40,50,60,200};
int searchKey=20;
对于(int i=0;ifor(int k=0;k使用此for循环,您将进入
java.lang.ArrayIndexOutOfBoundsException
。替换

for(int z = i ; z < arr.length ;z++)

我可以看出你会得到一个越界的例外 与

for(int z=i;z
尝试通过以下方式减少循环

for(int z = i ; z < arr.length -1 ;z++)
for(int z=i;z
错误是什么?没有编译器错误,只是在运行时出现IndexOutOfBoundException。
arr[z+1]
超出范围,是运行时异常。它给我逻辑错误,但在这一行:arr[z]=arr[z+1];可能重复
for(int z = i ; z < arr.length ;z++) {
    arr[z] = arr[z+1];
}
for(int z = i ; z < arr.length -1 ;z++)