私は本を読んでいて、そこからいくつかの単語を削除しています。このループのパフォーマンスを向上させることはできますか?
Vector<String> pages = new Vector<String>(); // Contains about 1500 page, each page has about 1000 words.
Vector<String> wordsToDelete = new Vector<String>(); // Contains about 50000 words.
for(String page: pages) {
String pageInLowCase = page.toLowerCase();
for(String wordToDelete: wordsToDelete) {
if(pageInLowCase.contains(wordToDelete))
page = page.replaceAll("(?i)\\b" + wordToDelete + "\\b" , "");
}
// Do some staff with the final page that does not take much time.
}
このコードを実行するために約3分かかります:私の問題は、例をプロセスに時間がかかる、と私はその性能より良い(少ない時間)を作りたいということです。もし私がのループをスキップしたらreplaceAll(...)私は2分以上を保存することができます。 高速なパフォーマンスで同じループを実行する方法はありますか?
さらに悪い何が、このコードは効果がありません。実行後、ベクトルは変更されません。 –
'(?i)'を使っているので、ページを小文字に変換する必要はありません。 – gdejohn
FYI:https://secure.wikimedia.org/wikipedia/en/wiki/String_searching_algorithm – Bozho