JAVA開發-功能函數-一個函數清除該數組的重複元素(手寫)

1.目前有數組int[] arr =  {11,2, 4, 2, 10, 11}定義一個函數清除該數組的重複元素,返回的數組不準浪費長度。
思想:
1.先利用冒泡排序思想找到數組arr中重複元素個數n,可以得到新數組newarr的長度arr.length - n;
2.把數組arr中不重複的元素放入新數組newarr中(這個正常人都能想到);
3.那麼如何將不重複的元素放入新數組newarr中?利用if來判斷,方法如下:
4.兩個循環遍歷,將數組arr中的每一個元素,依次放入新數組newarr中,加個過濾器(if判斷:是否,放入新數組newarr中的元素與之前放入的元素重複, 重複,高舉旗幟,break結束循環)
5.代碼如下:
public class Demo {
     public static void main(String[] args){
          System.out.println("王者歸來!");
          int[] arr =  {11,2,4,2,10,11};
          System.out.println("該數組重複的數有:"+clear(arr)+"個");
     }
     public static int clear(int[] a){
          int n=0;
          for(int i=0;i<a.length-1;i++){
              for(int j=i+1;j<a.length;j++){
                   if(a[i]==a[j]){
                        n++;
                   }
              }
          }
          int[] newarr = new int[a.length-n];
          int index=0;
          for(int i=0;i<a.length;i++){
              boolean flag = false;
              for(int j=0;j<newarr.length;j++){
                   //過濾:把原數組的每一個元素與放入新數組的元素進行比較
                   if(a[i]==newarr[j]){
                        flag = true;
                        break;
                   }
              }
              //第一遍:就沒有相等的
              if(flag == false){
                   //index先用再加,臥槽!
                   newarr[index++]=a[i];
              }
          }

          for(int i=0;i<newarr.length;i++){
              System.out.print(" "+newarr[i]);
          }
          return n;
     }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章