public class Solution {
public static HashMap<String, String> createMap() {
//напишите тут ваш код
HashMap<String,String>map = new HashMap<>();
map.put("Иванов","Сергей");
map.put("Петров","Иван");
map.put("Сидоров","Николай");
map.put("Копшев","Юрий");
map.put("Баулин","Юрий");
map.put("Рупп","Сергей");
map.put("Демешок","Игорь");
map.put("Васильев","Игорь");
map.put("Миронов","Дмитрий");
map.put("Айвазян","Валентин");
return map;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
//напишите тут ваш код
HashMap<String,String>copy = new HashMap<>(map);
for (Map.Entry<String,String> pair : copy.entrySet()) {
String name = pair.getValue();
int i = 0;
for (Map.Entry<String, String> pairs : map.entrySet()) {
if (name.equals(pairs.getValue())) ;
i++;
}
if (i>2){
removeItemFromMapByValue(map,name);
}
}
}
public static void removeItemFromMapByValue(Map<String, String> map, String value) {
HashMap<String, String> copy = new HashMap<String, String>(map);
for (Map.Entry<String, String> pair : copy.entrySet()) {
if (pair.getValue().equals(value))
map.remove(pair.getKey());
}
}
public static void main(String[] args) {
}
}
Юрий
31 уровень
Не проходит валидацию, подскажите где ошибка
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Юрий
2 июня 2019, 14:01
Про if напишите я правильно понял( в первом варианте)?
0
Юрий
2 июня 2019, 14:00
Я правда не дождавшись ответа реализовал по другому(но тут не обошлось без помощи, к сожалению)
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
//напишите тут ваш код
HashMap< String, String> copy = new HashMap< >(map);
for (Map.Entry< String, String > entry : copy.entrySet()) {
for (Map.Entry< String, String > maps : map.entrySet()) {
if (entry.getValue().equals(maps.getValue()) && !entry.getKey().equals(maps.getKey())) {
removeItemFromMapByValue(map, entry.getValue());
break;
}
}
}
}
0
Юрий
2 июня 2019, 13:57
Justinian спасибо огромное. Уже не первый раз меня выручаешь. Про if действительно часто забываешь этот момент.))) Хотел уточнить про 2 замечание. там должно быть if(i>=2) верно?
0
JustinianJudge в Mega City OneMaster
2 июня 2019, 13:18
1. FOR/ IF в 99% случаев (за редким исключением, например в сугубо алгоритмических низкоуровневых задачах) пишется с фигурными скобками даже если есть один оператор.
Иначе будет как здесь:
2. По условию задачи нужно найти дубликаты (два и более) а не трипликаты.
этот же код ищет трипликаты.
А так в целом мне лично понравилось, все четко и лаконично. Исправь эти два момента, и надейся на милость валидатора, должно пройти.
0