Ich lese ein Buch und lösche eine Reihe von Wörtern daraus. Mein Problem ist, dass der Prozess lange Zeit in Anspruch nimmt, und ich will seine Leistung besser (weniger Zeit), Beispiel machen:Kann ich eine schnellere Leistung für diese Schleife haben?
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.
}
Dieser Code dauert etwa 3 Minuten durchzuführen. Wenn ich die Schleife von replaceAll (...) überspringe kann ich mehr als 2 Minuten speichern. Gibt es also eine Möglichkeit, die gleiche Schleife mit einer schnelleren Leistung zu machen?
Was noch schlimmer ist, Dieser Code hat keine Auswirkungen.Nach der Ausführung bleiben Ihre Vektoren unverändert. –
Da Sie '(? I)' verwenden, müssen Sie die Seite nicht in Kleinbuchstaben konvertieren. – gdejohn
FYI: https://secure.wikimedia.org/wikipedia/en/wiki/String_searching_algorithm – Bozho