目前有 A B 两个文件
A 文件结构如下
aasdad11k1
dddasda113
oadap123ka
12321312aa
B 文件结构如下
kkooasda11
aasdad11k1
asdad11111
ooooo12312
asdada1312
AB 两个文件都是写\n 换行,每行都是以 字符+数字 组成,并且长度固定 现在想获取 A 里面的文件内容是否在 B 里面,如果在则输出这一行。
AB 两个文件大小都在 1000 万行
用 AWK 命令
awk 'NR==FNR{x[$0];next}{for(i in x)if($0~i)print}' a b > result
这个效率略低,目前代码如下
String b=null;
int i=0;
while ((str = bufferedReader.readLine()) != null){
b[i]=str;
i++;
}
while ((str = bufferedReader_a.readLine()) != null){
for (int m=0;m<b.length;m++){
if (str.equals(b[m])){
bw.write(str);
break;
}
}
}
bw.close();
fw.close();
速度太慢了. 在不考虑切分文件的情况下,有算法可以处理这类需求吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.