Всем доброго дня! Для решения данной использовал два динамических массива, один в качестве хранилища фамилий, другой в качестве хранилища городов. При введении фамилии и города с клавиатуры, индекс города(позиция в ArrayList) совпадает с индексом фамилии(позицией в ArrayList). Далее, по введенному городу, мы получаем его индекс и по этому индексу получаем соответствующую фамилию. Все условия соблюдены, но программа не проходит валидацию.
Я рассматривал использование HashMap, но использование фамилии или города в качестве ключа не целесообразно, так как ключ должен быть уникальным а фамилии или названия городов могут повторяться
package com.javarush.task.jdk13.task08.task0829;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
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));
List<String> list = new ArrayList<>();
List<String> city = new ArrayList<>();
while (true) {
String family = reader.readLine();
if (family.isEmpty()) {
break;
}
String nameCity = reader.readLine();
list.add(family);
city.add(nameCity);
}
// Read the house number
/*int houseNumber = Integer.parseInt(reader.readLine());
if (houseNumber <= 0 && houseNumber < list.size()) {
String familyName = list.get(houseNumber);
System.out.println(familyName);
}*/
int indexCity = city.indexOf(reader.readLine());
if(indexCity >= 0 && indexCity < list.size())
{
System.out.println(list.get(indexCity));
}
}
}