0

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

4

1 回答 1

2

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

  1. 将 Excel 文件解析为集合

  2. 然后遍历集合并将它们添加到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;
    }
}

将每个对象添加到 a Set

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

设置文档。

于 2013-09-23T17:01:20.400 回答