黑马程序员技术交流社区

标题: 关于数组的问题,如何去掉数组中的重复元素 [打印本页]

作者: 饭要大口吃    时间: 2016-9-18 23:07
标题: 关于数组的问题,如何去掉数组中的重复元素
分析以下需求,并用代码实现:
    (1)定义一个int类型的一维数组,内容为{6,2,9,6,1,2,6,7,8}
    (2)去除上面定义的数组中的重复元素,打印最终结果{6, 2, 9, 1, 7, 8}
    提示: (新建一个数组

作者: &天马星空ぁ    时间: 2016-9-19 00:23
学集合了么  ,学集合后定义一个集合,然后循环嵌套arr[i]添加到数组加if判断语句与添加过的比较  相同不添加 然后打印集合
作者: 饭要大口吃    时间: 2016-9-19 15:03
&天马星空ぁ 发表于 2016-9-19 00:23
学集合了么  ,学集合后定义一个集合,然后循环嵌套arr添加到数组加if判断语句与添加过的比较  相同不添加  ...

  还没学集合....才学到面向对象
作者: 459374998    时间: 2016-9-19 15:09
学面向对象还没学集合么?ArrayList应该学了基础用法了吧。
作者: &天马星空ぁ    时间: 2016-9-19 16:03
[Java] 纯文本查看 复制代码

public class Demo01 {
        public static void main(String[] args) {
                int[] arr={6,2,9,6,1,2,6,7,8};
               
                int[] brr=selectArr(arr);
                for (int i = 0; i < brr.length; i++) {
                        System.out.println(brr);
                }
        }
        public static  int[] selectArr(int[] arr){
                int[] brr=new int[arr.length];
                int count=0;
                for (int i = 0; i < arr.length; i++) {
                        for (int j = 0; j < brr.length; j++) {
                                //如果arr和brr中新添加的元素挨个比较比较
                                if(j<count&&arr!=brr[j]){
                                        continue;
                                }
                                if(j<count&&arr==brr[j]){
                                        break;
                                }
                                //如果都不相同brr添加新的元素arr
                                brr[count]=arr;
                                count++;
                                break;
                               
                               
                        }
                       
                }
                int[] crr=new int[count];
                for (int i = 0; i < crr.length; i++) {
                        crr=brr;
                }
                return crr;
        }
}


作者: &天马星空ぁ    时间: 2016-9-19 16:06
饭要大口吃 发表于 2016-9-19 15:03
还没学集合....才学到面向对象

我们先学的 集合后学的面对对象  用集合来写稍微多一点步骤  你看看  不懂哪里可以问我
作者: litianji2016    时间: 2016-9-19 19:40
本帖最后由 litianji2016 于 2016-9-19 19:42 编辑

[Java] 纯文本查看 复制代码
public static void main(String[] args) throws FileNotFoundException {
                int arr[]={6,2,9,6,1,2,6,7,8};
                Set set=new HashSet();
                for (int i=0;i<arr.length;i++) {
                        set.add(arr);
                }
                arr=new int[set.size()];
                Iterator it=set.iterator();
                int index=0;
                while(it.hasNext()){
                        arr[index]=(int) it.next();
                        index++;
                }
                for (int i : arr) {
                        System.err.println(i);
                }
        }

作者: Toxicant    时间: 2016-9-19 20:37
我给你说一下基本的思想吧,就是遍历数组,将每个元素都进行比较如果相同就删除,然后将后面的元素迁移(在另一个for循环内),打印的时候,因为数组内的内容不为零,所以那,遍历数组的时候取值等于零,就不打印就好了啊
作者: 边_城    时间: 2016-9-19 21:08
{:3_56:}我只是来学习的




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