我有两个文件,分别是 file1.txt 和 file2.txt。这两个文件都包含一些由a分隔的内容<TAB>
例如文件 1 包含
123abc us.online.com
ab123 us.online.co
文件 2 包含
123abc us.zhang.com
456def us.ppd.456def
def56 cn.online.pek
ab123 us.portlet.co
现在我需要根据第一个字段在java中找到这两个文件的交集。所以我的输出基本上应该是
123abc us.online.com 123abc us.zhang.com
ab123 us.online.co ab123 us.portlet.co
在 Java 中有没有一种有效的方法来做到这一点?这是我迄今为止尝试过的
List<String> logRid = new ArrayList<String>();
List<String> fatalRid = new ArrayList<String>();
File logFile = new File("logs.txt");
File rtlaFile = new File("rtla.txt");
BufferedReader reader = null;
public List<String> readFiles(){
try
{
reader = new BufferedReader(new FileReader(logFile));
String text = null;
while((text = reader.readLine()) != null)
{
logRid.add(text);
}
}
catch (Exception e) {
e.printStackTrace();
}
try
{
reader = new BufferedReader(new FileReader(rtlaFile));
String text = null;
while((text = reader.readLine()) != null)
{
fatalRid.add(text);
}
}
catch (Exception e1) {
e1.printStackTrace();
}
return this.intersection(logRid, fatalRid);
}
public <T> List<T> intersection(List<T> list1, List<T> list2)
{
List<T> list = new ArrayList<T>();
for (T t : list1) {
if(list2.contains(t)){
list.add(t);
}
}
return list;
}
我能够到达路口,唯一的问题是维持秩序。