ArrayList finalList = new ArrayList();
//Let's get the first list in the master list to use for
//a guide for checking if the other lists contain matching store numbers
if(!masterList.isEmpty() && masterList != null)
{
ArrayList storeList = (ArrayList)masterList.get(0);
for(int i = 0;i < masterList.size();i++)
{
ArrayList tempList = (ArrayList)masterList.get(i);
for(int x = 0; x < storeList.size();x++)
{
if(tempList.contains(storeList.get(x)))
{
finalList.add(storeList.get(x));
}
}
}
searchCriteria.setLength(searchCriteria.length() - 2);
}
//Now that we have our final list then we need to sort through it and
//match the number(magicNumber) of duplicate store numbers(if any) to the size of the masterlist.
//This will give us our TRUE final SET of stores for our search criteria.
TreeSet searchSet = new TreeSet();
int magicNumber;
for(int z = 0;z < finalList.size();z++)
{
magicNumber = 0;
for(int y = 0; y < finalList.size();y++)
{
if(finalList.get(y).toString().equals(finalList.get(z).toString()))
{
magicNumber++;
if(magicNumber == masterList.size())
{
searchSet.add(finalList.get(z));
}
}
}
}