【发布时间】:2013-07-19 07:35:57
【问题描述】:
所以我试图比较 java 中的 2 个巨大的文本列表。文本可能如下所示:
list1 : 值 1 , 值 2 , 值 3 ... list2 : 值 1604 , 值 7000 , 值 1 ...
关键是我喜欢从列表 1 与列表 2 中的每一行进行比较(每个值都在自己的行中)并从列表 2 中删除重复项,将数组 3 写入文件。这就是我得到的:
编辑:
File haveFile = new File("Combine Without Dups.txt");
BufferedReader br = null;
br = new BufferedReader(new FileReader(haveFile));
String line ;
String list = null ;
while ((line = br.readLine()) != null) {
list = line ;
}
File compareFile = new File("database.txt");
BufferedReader br2 = null;
br2 = new BufferedReader(new FileReader(compareFile));
String line2 ;
String list2 = null ;
while ((line2 = br2.readLine()) != null) {
list2 = line2 ;
list2.removeAll(list);
【问题讨论】:
-
每个列表的值是否唯一?比如,一个列表可以有两个等价的值吗?
-
你可以使用 HashSet
代替 ArrayList,重复被自动删除 -
为什么这样做:BufferedReader br = null; br = new BufferedReader(new FileReader(haveFile)); ?
-
是的,它们是独一无二的。列表 1 包含 12000 个名称,每行一个名称。列表 2 包含 42000 个名称,我需要删除这 12000 个名称
-
@kon 它是我知道如何阅读的唯一方法,并且到目前为止它有效。我不需要它是完美的,只要完成工作就可以了