перед тем, как что-то менять, решил разобраться, как работает изначальный код... Сразу в ArrayList попадают все введённые строки, если считать, что условие family.isEmpty() рабочее(практика показывает обратное), затем появляется int номер дома, который откуда-то берет ещё одну строку, хотя в while break срабатывает, только когда введенных строк уже нет... Дальше из вышеописанного делать выводы очень сложно... В общем даже изначальный код у меня не работает СОВСЕМ!!! Может кто объяснить, что происходит!?