Je compare des sous-chaînes dans deux gros fichiers texte. Très simple, tokenizing en deux conteneurs jetons, en comparant avec 2 pour les boucles. Les performances sont désastreuses! Est-ce que quelqu'un a un conseil ou une idée pour améliorer la performance?Comparaison de chaînes 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;
}
}
En général, mon code de lecture deux grandes chaînes avec Java Tokonizer dans des conteneurs A et B. Et puis essayer de comparer substrings.Possision de Substrgs qui sont en vigueur dans les deux chaînes pour stocker dans un vecteur. Mais la performance est horrible, aussi ne savent pas vraiment comment le résoudre avec HashMap.
Pouvez-vous décrire avec des mots ou avec un exemple ce que votre code ne ? –