Помогите пожалуйста в следующей проблеме. У меня есть список ArrayList, и связанная с ним карта HashMap.
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList phoneName = new ArrayList();
phoneName.add("8 800 2000 000");
phoneName.add("8 800 2000 100");
map.put("Егоров В.В.", phoneName);
phoneName.add("8 800 2000 200");
map.put("Андреев А.А.", phoneName);
phoneName.add("8 800 2000 300");
phoneName.add("8 800 2000 400");
phoneName.add("8 800 2000 500");
map.put("Михалёв Д.Д.", phoneName);
Мне нужно выбрать из ArrayList только те записи, которые соответствуют определённому ключу HashMap. Пробовал делать так, но это не работает.
for (Map.Entry<String, ArrayList<String>> entry : map.entrySet()) {
if(map.containsKey("Егоров В.В.")) {
System.out.println(entry.getValue());
}
}
Вам нужно после добавления записи в HashMap создавать новый ArrayList. Используя один список, вы будете иметь по всем ключам в HashMap один и тот же ArrayList со всеми номерами.
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList<String> phoneName = new ArrayList<String>();
phoneName.add("8 800 2000 000");
phoneName.add("8 800 2000 100");
map.put("Егоров В.В.", phoneName);
phoneName = new ArrayList<String>();
phoneName.add("8 800 2000 200");
map.put("Андреев А.А.", phoneName);
phoneName = new ArrayList<String>();
phoneName.add("8 800 2000 300");
phoneName.add("8 800 2000 400");
phoneName.add("8 800 2000 500");
map.put("Михалёв Д.Д.", phoneName);
Получить по ключу значение из HashMap модно методом get.
String key = "Егоров В.В.";
System.out.println(map.get(key)); // [8 800 2000 000, 8 800 2000 100]
Пройтись по номерам в цикле можно так:
for(String value : map.get(key)){
System.out.println(value);
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости