我正在读取一个Excel文件,其中包含用于项目工作的数百万个数据集的记录。我的问题是如何填充列(或属性)的每个分类变量可以具有的唯一值列表。 POI库中是否有任何预定义的函数可以执行此任务,否则唯一的选择就是遍历每个单独的记录,然后与已经存在的记录进行比较以确定新记录。谢谢。

最佳答案

一种方法是使用所有列创建一个对象,然后对该对象覆盖hashCodeequals方法。


将Excel文件解析为一个集合
然后遍历集合并将它们添加到Set


对于包含每个列的YourObject

@Override
public int hashCode(){
    return new HashCodeBuilder()
        .append(column1)
        .append(column2)
        .toHashCode();
}

@Override
public boolean equals(final Object obj){
    if(obj instanceof YourObject){
        final YourObject other = (YourObject) obj;
        return new EqualsBuilder()
            .append(column1, other.column1)
            .append(column2, other.column2)
            .isEquals();
    } else{
        return false;
    }
}


将每个对象添加到Set

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


Set文档。

09-12 23:39