我正在比较两个大文本文件中的子字符串。非常简单,标记为两个令牌容器,与2 for循环比较。 性能不堪设想!有没有人有建议或想法如何提高性能?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.然后试图比较这些两个字符串现有存储到一个Vector Substrgs的substrings.Possision。但是性能很糟糕,也不知道如何用HashMap解决它。
你可以在口头上或与您的代码所做的例子说明? – 2010-09-05 20:23:02