Please have a look at the following code
private StringBuffer populateStringWithUnmatchingWords(ArrayList<String>unmatchingWordsHolder)
{
StringBuffer unMatchingWordsStr = new StringBuffer("");
for(int u=0;u<unmatchingWordsHolder.size();u++)
{
Iterator iterInWordMap = wordMap.entrySet().iterator();
while(iterInWordMap.hasNext())
{
Map.Entry mEntry = (Map.Entry)iterInWordMap.next();
if(mEntry.getValue().equals(unmatchingWordsHolder.get(u)))
{
//out.println(matchingWords.get(m)+" : "+true);
unMatchingWordsStr.append(mEntry.getKey());
unMatchingWordsStr.append(",");
}
}
}
return unMatchingWordsStr;
}
This for loop
takes 8387ms to complete. The unmatchingWordsHolder
is pretty big too. wordMap
is a HashMap
and contains somewhat around 5000 elements as well.
This loop will search whether elements in unmatchingWordsHolder
are available in wordMap
. If they are available, then they will be loaded into unMatchingWordsStr
.
Is there any way for me to speed up this task?