我有一个用 Java 编写的程序,它读入一个文件,该文件只是一个字符串列表到 LinkedHashMap。然后它需要一个由两列组成的第二个文件,并为每一行查看右侧术语是否与 HashMap 中的一个术语匹配。问题是它运行得很慢。
这是一个代码片段,它将第二个文件与 HashMap 项进行比较:
String output = "";
infile = new File("2columns.txt");
try {
in = new BufferedReader(new FileReader(infile));
} catch (FileNotFoundException e2) {
System.out.println("2columns.txt" + " not found");
}
try {
fw = new FileWriter("newfile.txt");
out = new PrintWriter(fw);
try {
String str = in.readLine();
while (str != null) {
StringTokenizer strtok = new StringTokenizer(str);
strtok.nextToken();
String strDest = strtok.nextToken();
System.out.println("Term = " + strDest);
//if (uniqList.contains(strDest)) {
if (uniqMap.get(strDest) != null) {
output += str + "\r\n";
System.out.println("Matched! Added: " + str);
}
str = in.readLine();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.print(output);
我从最初从 ArrayList 切换到 LinkedHashMap 获得了性能提升,但仍然需要很长时间。我能做些什么来加快速度?