哈哈哈123457 2017-06-14 03:46 采纳率: 86%
浏览 3362
已采纳

java 数组如何去除重复元素

java 数组如何去除重复元素。。。。。。。。。。。。。。。。。。

  • 写回答

6条回答 默认 最新

  • 北宫清云 2017-06-14 05:51
    关注

    也是自己写的,纯数组去重处理:
    /*

    • 去除数组中的重复元素
      */
      public class RemoveRepeated {

      public static int[] delete(int[] arr,int index){
      int[] newArr=new int[arr.length-1];
      for(int i=0;i if(i>=index)
      newArr[i]=arr[i+1];

      else
      newArr[i]=arr[i];
      }
      arr=newArr;
      return arr;
      }
      //保留在第一次出现的位置
      public static int[] removeRepeated1(int[] arr){
      for(int i=0;i<arr.length;i++){
      for(int j=i+1;j<arr.length;j++){
      if(arr[i]==arr[j]){
      arr=delete(arr,j);
      j--;
      }
      }
      }
      return arr;
      }

      //保留在最后一次出现的位置
      public static int[] removeRepeated2(int[] arr){
      for(int i=0;i<arr.length;i++){
      for(int j=i+1;j<arr.length;j++){
      if(arr[i]==arr[j]){
      arr=delete(arr,i);
      j--;
      }

          }
      
      }
      return arr;
      

      }
      //全部去除
      public static void removeRepeated3(int[] arr){

      int temp=0;
      for(int i=0;i<arr.length;i++){
          for(int j=0;j<arr.length;j++){
              if(arr[i]==arr[j]&&i!=j)
              {
                  temp=arr[i];
              }
      
          }
          if(arr[i]!=temp){
              System.out.print(arr[i]+"\t");
          }
      
      }
      

      }

      public static void loop(int[] arr){

      for(int i=0;i<arr.length;i++){
          System.out.print(arr[i]+"\t");
      }
      System.out.println();
      

      }
      public static void loopOld(int[] arr){

      for(int i=0;i<arr.length;i++){
          System.out.print(arr[i]+"\t");
      }
      System.out.println();
      

      }

      public static void main(String[] args) {
      int[] arr={2,2,2,4,10,2,3,4};
      System.out.print("老数组为: ");
      loopOld(arr);

      System.out.print("去重的数组为(保留第一次出现的位置):   ");
      loop(removeRepeated1(arr));
      
      System.out.print("去重的数组为(保留最后一次出现的位置):");
      loop(removeRepeated2(arr));
      
      System.out.print("去重的数组为(全部去除):                            ");
      removeRepeated3(arr);
      

      }

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?