Я не могу понять, почему второй цикл for, построенный вокруг pacs.length, продолжает добавлять элементы в набор, даже если они не содержат искомую переменную в mems.contains. Я не могу заставить код не добавлять элементы в набор без разбора. Я не вижу, где я иду не так, очевидно.
import java.io.*;
import java.util.*;
public class Trubl
{
public static void main( String args[] ) throws Exception
{
BufferedReader pacsFile = new BufferedReader( new FileReader( "pacs.txt" ) );
BufferedReader membersFile = new BufferedReader( new FileReader( "members.txt" ) );
TreeSet<String> memsSet = new TreeSet<String>();
TreeMap<String, TreeSet<String>> pac2mems = new TreeMap<String, TreeSet<String>>();
String[] pacs = new String [9];
int cnt = 0;
for(int i = 0; i < pacs.length; i++)
{
String pac = pacsFile.readLine();
pacs[i] = pac;
}
pacsFile.close();
Arrays.sort(pacs);
int j = 0;
while (membersFile.ready())
{
String mems = membersFile.readLine();
System.out.println(mems);
String[] splitter = mems.split("\\s+");
for (int i = 1; i < pacs.length; i++)
{
System.out.println(pacs[i]);
if (mems.contains(pacs[i]))
{
memsSet.add(splitter[0]);
}
System.out.println(memsSet);
}
pac2mems.put(pacs[j], memsSet);
j++;
}
membersFile.close();
for (cnt = 0; cnt < pac2mems.size(); cnt++)
System.out.println(pacs[cnt] + " " + pac2mems.get(pacs[cnt]));
} // END MAIN
}