【发布时间】:2014-03-24 08:56:36
【问题描述】:
我必须做一个应用程序,比较一些非常大的csv 文件,每个文件有 40,000 条记录。我已经完成了一个应用程序,它可以正常工作,但是它花费了大量时间进行比较,因为这两个文件可能是混乱的或有不同的记录 - 为此我必须迭代 (40000^2)*2 次。
这是我的代码:
if (nomFich.equals("CAR"))
{
while ((linea = br3.readLine()) != null)
{
array =linea.split(",");
spliteado = array[0]+array[1]+array[2]+array[8];
FileReader fh3 = new FileReader(cadena + lista2[0]);
BufferedReader bh3 = new BufferedReader(fh3);
find=0;
while (((linea2 = bh3.readLine()) != null))
{
array2 =linea2.split(",");
spliteado2 = array2[0]+array2[1]+array2[2]+array2[8];
if (spliteado.equals(spliteado2))
{
find =1;
}
}
if (find==0)
{
bw3.write("+++++++++++++++++++++++++++++++++++++++++++");
bw3.newLine();
bw3.write("Se han incorporado los siguientes CGI en la nueva lista");
bw3.newLine();
bw3.write(linea);
bw3.newLine();
aparece=1;
}
bh3.close();
}
我认为在 Java 中使用 Set 是一个不错的选择,如下面的帖子所示:
Comparing two csv files in Java
但在我尝试这种方式之前,我想知道是否有更好的选择。
谢谢大家。
【问题讨论】:
标签: java comparator