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

标签 java arrays

我最近开始学习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]);
            }
        }

    }
        }

    }

最佳答案

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

我的建议:你应该使用 Set ,将所有元素插入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);
    }

关于java - 删除int数组中重复元素的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41740604/

相关文章:

arrays - Resort Swift Array - 将空名称的对象移动到数组的末尾

java - Mybatis 和无效类型

java - java.util.hashMap 中的 init 方法

javascript - 找出 4 个百分比之间的所有可能性

javascript - 复制数组而不链接到它

c - C语言中如何从字符数组中获取数字

c++ - 什么是数组中元素的前身?我如何找到它?

java - 从线程修改全局 ArrayList

java - Java 中使用循环的 Switch 语句

java - Nuxeo 使用 REST 使用新版本创建和更新文件