Не понимаю каким образом 21 строчка - if(para.getKey().equals(name)){ работает. Предполагаю что getKey перебирает все значения ключа, и сравнивает его со значение name( но его же тоже множество) получается он перебирает и всю первую группу и всю вторую, но ведь они одно и тоже значение. Не могу никак понять..