【问题标题】:Program to remove duplicate elements in a int array [duplicate]删除 int 数组中重复元素的程序 [重复]
【发布时间】:2017-06-04 01:58:08
【问题描述】:

我最近开始学习 java 编程,在下面的程序中我试图打印不同的数组元素 就像例如如果 int arr[]={2,5,4,9,3,2,5,9,4} 那么我希望能够只获得一次数字,即预期值 2 5 4 9 3 下面是我执行此操作的代码,但我得到不正确的 o/p 我的 o/p: 2 5 4 9. 谁能指出我做错了什么

 package prac;

    public class RemoveDup {

        public static void main(String[] args) {

    int[] a={2,5,4,9,3,2,5,9,4};
    int n=a.length;
    for(int i=0;i<=n;i++){
        //System.out.print("In i"+i);
        for(int j=i+1;j<n;j++){
            //System.out.println("In j"+j);
            if(a[i]==a[j]){
                System.out.println(a[i]);
            }
        }

    }
        }

    }

【问题讨论】:

  • 您的代码会打印出所有重复的元素,这与您想要实现的目标相反
  • 很容易找到的现有答案为您提供了大约 30 多个潜在答案。
  • 我很惊讶您没有收到 ArrayIndexOOB 错误。

标签: java arrays


【解决方案1】:

重新发明轮子是个好主意,但如果您刚开始学习一门语言,这并不是最理想的主意。当然,您可以添加一些调试语句以查看正在比较的内容等,或者使用某些 IDE (Netbeans/Eclipse) 逐步执行您的代码,这样您就可以看到正在发生的事情。

我的建议:你应该使用Set,将你所有的元素插入到集合中,如果你两次插入相同的值,它不会有任何重复。

例如:

    int[] a={2,5,4,9,3,2,5,9,4};
    int n=a.length;
    HashSet<Integer> myVals = new HashSet<Integer>();
    for(int val : a){
        myVals.add(val);
    }
    for(int val : myVals){
        System.out.println(val);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 2013-03-23
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多