Java 删除int数组中重复元素的程序

Java 删除int数组中重复元素的程序,java,arrays,Java,Arrays,我最近开始学习java编程,在下面的程序中,我试图打印不同的数组元素 例如,如果一个int arr[]={2,5,4,9,3,2,5,9,4},那么我只想得到一次数字,即期望值2,5,4,9,3 下面是我的代码,但我得到了不正确的o/p 我的o/p:2549。有人能指出我做错了什么吗 package prac; public class RemoveDup { public static void main(String[] args) { int[] a

我最近开始学习java编程,在下面的程序中,我试图打印不同的数组元素 例如,如果一个int arr[]={2,5,4,9,3,2,5,9,4},那么我只想得到一次数字,即期望值2,5,4,9,3 下面是我的代码,但我得到了不正确的o/p 我的o/p:2549。有人能指出我做错了什么吗

 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]);
            }
        }

    }
        }

    }

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

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

例如:

    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);
    }

你的代码会打印出所有有重复项的元素,这与你试图实现的相反。现有答案很容易找到,其中有30多个潜在答案。我很惊讶你没有得到ArrayIndexOOB错误。