Я сравниваю подстроки в двух больших текстовых файлах. Очень простой, токенизация в два контейнера для токенов, по сравнению с 2 для циклов. Спектакль катастрофический! Есть ли у кого-нибудь совет или идея, как повысить производительность?Сравнение строк Java
for (int s = 0; s < txtA.TokenContainer.size(); s++) {
String strTxtA = txtA.getSubStr(s);
strLengthA = txtA.getNumToken(s);
if (strLengthA >= dp.getMinStrLength()) {
int tokenFileB = 1;
for (int t = 0; t < txtB.TokenContainer.size(); t++) {
String strTxtB = txtB.getSubStr(t);
strLengthB = txtB.getNumToken(t);
if (strTxtA.equalsIgnoreCase(strTxtB)) {
try {
subStrTemp = new SubStrTemp(
txtA.ID, txtB.ID, tokenFileA, tokenFileB,
(tokenFileA + strLengthA - 1),
(tokenFileB + strLengthB - 1));
if (subStrContainer.contains(subStrTemp) == false) {
subStrContainer.addElement(subStrTemp);
}
} catch (Exception ex) {
logger.error("error");
}
}
tokenFileB += strLengthB;
}
tokenFileA += strLengthA;
}
}
Вообще мой код читает два больших строк с Java Tokonizer в контейнеры A и B. А затем пытается сравнить substrings.Possision из Substrgs, которые существуют в обеих строках для хранения в векторе. Но производительность ужасна, также не знаю, как ее решить с помощью HashMap.
Можете ли вы описать словами или с примером того, что ваш код делает ? –