自定义数组的删除(伪删除)

删除的时候首先要找到要删除元素的索引,而后再把该索引以后的值赋值给前一个,最后数组长度再减一数组

int[] arr = {1,3,5,7,8,15,22,33,44,55,66}; Scanner sc=new Scanner(System.in);//用户键盘录入要查找的数字
 System.out.println("请输入要查找的数字"); int findNum=sc.nextInt(); int low=0;//设定最小值
        int height=arr.length-1;//设定最大值
        int mid=0;//求取中间值的索引
        int count=arr.length;//获取数组的总长度
        boolean isFind=false;//标志位表明是否找到
        int delIndex=-1;//设置要删除元素的索引
        while(height>=low) {//因为不知道循环多少次因此用while循环,而且最大值老是大于等于最小值如果小于则重复查找了
            mid=(low+height)/2; if(findNum>arr[mid]) { low=mid+1;//当大于中间值时最小值索引改变为中间值+1,
 } else if(findNum<arr[mid]){ height=mid-1;//当大小于中间值时改变为最大值索引为中间值-1
 } else if(findNum==arr[mid]) {//当知足条件时跳出循环,而且将标志位赋值为true
                isFind=true; System.out.println("恭喜找到了索引为"+mid); delIndex=mid; //获取要被删除数的索引
                break; } } if(isFind!=true) { System.out.println("您所输入的数字没法找到"); } count--;//删除以后数组长度要+1
        for (int i = mid; i <count ; i++) { arr[i]=arr[i+1]; } for (int i = 0; i < count; i++) { System.out.println(arr[i]); }
相关文章
相关标签/搜索