Прежде всего, почему вы хотите пойти на HashMap? Несомненно, это упростит бит поисковой логики, если вы, вероятно, помните ключевые значения, которые вы вставляете на карту для каждого континента.
Однако логика, к которой вы, вероятно, можете пойти, может быть похожа, вам нужно разобрать список, указанный как вход, и поместить в каждую страну, помещенную ниже названия континента в списке, и поместить в HashMap. Теперь, во время поиска вам просто нужно предоставить ключ и получить список страны для определенного континента.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class TestMaps {
public void check(HashMap<Integer,List<String>> m) {
System.out.println(m.get(1));
//System.out.println(m.get(2));
System.out.println(m);
}
public static void main(String[] args) {
HashMap <Integer,List<String>> m = new HashMap<Integer,List<String>>();
List <String> ls =new ArrayList<String>();
ls.add("India");
ls.add("Indonesia");
m.put(1, ls);
TestMaps test=new TestMaps();
test.check(m);
}
}
Возможно, вы также можете перейти на строку с именем значение континента как ключ но Целое всегда лучший выбор для ключа. Тем не менее, для значения ключа быть строка просто заменить приведенный выше код, как:
HashMap<String, List<String>> m = new HashMap<String, List<String>>();
List<String> ls = new ArrayList<String>();
ls.add("India");
ls.add("Indonesia");
m.put("Asia", ls);
Помимо этого, вы можете также использовать Список список и развивать необходимую функциональность.
Примечание: для входного текстового файла требуется логическая синтаксическая разборка. Я не дал код для того же самого. Я ожидал входной файл, чтобы быть типа:
Continent 1
Country 1
Country 2
Country 3
Country n
Continent 2
Country n
Continent n