黑马程序员技术交流社区

标题: 怎么去除数组中的重复元素 [打印本页]

作者: huangsong1002    时间: 2016-7-26 21:26
标题: 怎么去除数组中的重复元素
(1)定义一个int类型的一维数组,内容为{6,2,9,6,1,2,6,7,8}
(2)去除上面定义的数组中的重复元素,打印最终结果{6, 2, 9, 1, 7, 8}

//想了一天,都没想出来,一直缺点什么
作者: huangsong1002    时间: 2016-7-26 21:27
class Test3_Array {
        public static void main(String[] args) {
                int[] arr = {6,2,9,6,1,2,6,7,8};
                int count=num(arr);
                int[] arr1 = new int[arr.length-count-1] ;
                System.out.println(count);
                num1(arr,arr1);
                for (int s=0;s<arr1.length ;s++ ) {
                        System.out.print(arr1[s]+" ");
                }
        }
                //System.out.print("{");
                //System.out.print(arr[0]);
        public static int num(int[] arr){
                int count=0;
                for (int i=0;i<arr.length ;i++ ) {
                        for (int j=0;j<i ;j++ ) {
                                if (arr[i]==arr[j]) {
                                        System.out.println(i);
                                        count++;
                                         continue;       
                                }
                                //int[] arr1=new arr1[count];
                        }       
                }
                return count;
        }
        public static void num1(int[] arr,int[] arr1){
                int count1=0;
                for (int i=0;i<arr.length ;i++ ) {
                        for (int j=0;j<i ;j++ ) {
                                if (arr[i]==arr[j]) {
                                        arr1[count1]=arr[i];
                                                count1++;
                                         continue;       
                                }
                                //int[] arr1=new arr1[count];
                        }       
                }
        }
}
我感觉应该是我思路出了问题,求大神帮助
作者: accomplonely    时间: 2016-7-26 21:32
创建一个新的数组 根据下标判断。
class Demo_Change {
        public static void main(String[] args) {
                System.out.println("Hello World!");
                int a[]=new int[] {6,2,9,6,1,2,6,7,8};
                int count=0;
        a:        for(int i=0;i<a.length;i++){
                        for(int j=i+1;j<a.length;j++){
                                if(a[i]==a[j]){
                                        count++;
                                        continue a;
                                }
                        }
                }
                int newArr[] = new int[a.length-count];
                int index=0;
                //boolean flag=false;
        b:        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;
                                        continue b;
                                }
                        }
                        if(flag==false){
                                newArr[index++]=a[i];
                        }
                }
                for(int i=0;i<newArr.length;i++){
                        System.out.print(""+newArr[i]);
                }
       
       
       
        }
       

}

作者: accomplonely    时间: 2016-7-29 20:59
有问题的 数组有0不可以当时没想到
作者: walkk    时间: 2016-7-29 21:23
就是,楼上说得好有道理我竞无言以对




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2