自定义数组的删除(伪删除)
Posted lzq-java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自定义数组的删除(伪删除)相关的知识,希望对你有一定的参考价值。
删除的时候首先要找到要删除元素的索引,然后再把该索引之后的值赋值给前一个,最后数组长度再减一
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]); }
以上是关于自定义数组的删除(伪删除)的主要内容,如果未能解决你的问题,请参考以下文章