Я читаю книгу и удаляю несколько слов из нее. Моя проблема заключается в том, что этот процесс занимает много времени, и я хочу, чтобы его производительность лучше (меньше времени), например:Могу ли я получить более высокую производительность для этого цикла?
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