LinkedHashMap に文字列のリストであるファイルを読み込む Java で書かれたプログラムがあります。次に、2 つの列で構成される 2 番目のファイルを取得し、各行について、右側の用語が HashMap の用語の 1 つと一致するかどうかを確認します。問題は、実行速度が非常に遅いことです。
コード スニペットを次に示します。これは、2 番目のファイルを 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 に切り替えることでパフォーマンスが向上しましたが、まだ時間がかかります。これをスピードアップするにはどうすればよいですか?