刪除的時候首先要找到要刪除元素的索引,而後再把該索引以後的值賦值給前一個,最後數組長度再減一數組
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]); }