java - 哈希集对象

标签 java object set hashset

我正在编写一段代码,它需要大量对象并将它们添加到另一个数组中。问题是,我不想要任何重复的。有没有办法实现哈希集来解决这个问题?

    public static Statistic[] combineStatistics(Statistic[] rptData, Statistic[] dbsData) {
    HashSet<Statistic> set = new HashSet<Statistic>();
    for (int i=0; i<rptData.length; i++) {
        set.add(rptData[i]);
    }
    /*If there's no data in the database, we don't have anything to add to the new array*/
    if (dbsData!=null) {
        for (int j=0; j<dbsData.length;j++) {
            set.add(dbsData[j]);
        }
    }
    Statistic[] total=set.toArray(new Statistic[0]);
    for (int workDummy=0; workDummy<total.length; workDummy++) {
        System.out.println(total[workDummy].serialName);
    }

    return total;
}//end combineStatistics()

最佳答案

如果您希望值相等而不是引用相等,请在 YourObject 上正确实现 equals(Object obj)hashCode()

Set<YourObject> set = new HashSet<YourObject>(yourCollection);

Set<YourObject> set = new HashSet<YourObject>();
set.add(...);

然后

YourObject[] array = set.toArray(new YourObject[0])

关于java - 哈希集对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20431521/

相关文章:

javascript - 找出对象表示法中数组的长度

javascript - 如何创建一个 JavaScript 函数来查找相互嵌套的对象和数组

c++ - 原位删除元素的最佳方法

包含 NSObject 子类时,Swift 2.0 Set 无法按预期工作

java - 如何正确设置 CTabItem 的边框样式

java - 如何从链接列表中删除 "#"链接

python - PyCharm 警告我为由 classmethod 函数创建的 classmethod 创建对象

c++ - 集合上的输出迭代器 : assign and increment iterator

java - 循环中的 HttpClient

java - 将 HTML 转换为 DOCX