Требуется консультация голосом

Привет! Дошёл до 13 уровня, и впал в кому… Не могу понять параметризованные интерфейсы и всё тут. Пошёл за разъяснениями к Брюсу Эккелю «Философия Java», глава 9 — всё стало только хуже, запутался еще больше. Если не трудно — объясните по-человечески, желательно через skype… Мой логин alcochtivo

package com.javarush.test.level08.lesson11.bonus02;

Нужна помощь. Не принимает решение.

package com.javarush.test.level08.lesson11.bonus02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

/* Нужно добавить в программу новую функциональность
Задача: Программа определяет, какая семья (фамилию) живёт в доме с указанным номером.
Новая задача: Программа должна работать не с номерами домов, а с городами:
Пример ввода:
Москва
Ивановы
Киев
Петровы
Лондон
Абрамовичи

Лондон

Пример вывода:
Абрамовичи
*/

public class Solution
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Map<String,String> addresses = new HashMap<String, String>();
while (true)
{
String city = reader.readLine();
String name = reader.readLine();
if (!city.isEmpty() & !name.isEmpty())
{
addresses.put(city, name);
}
else break;
}

String tempCity = reader.readLine();

for (Map.Entry<String, String> pair: addresses.entrySet())
{
String city = pair.getKey();
if (tempCity.equals(city))
{
String name = pair.getValue();
System.out.println(name);
}
}
}
}