首页 > 学院 > 开发设计 > 正文

定义一个函数清除该数组的重复元素

2019-11-06 06:10:55
字体:
来源:转载
供稿:网友
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;     }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表