package com.javarush.task.task08.task0817;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
import java.util.Map.Entry;
import java.io.IOException;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("Иванов", "Саша");
map.put("Петров", "Петя");
map.put("Сидоров", "Вася");
map.put("Порох", "Вася");
map.put("Стелла", "Петя");
map.put("Мажор", "Кирил");
map.put("Кобейн", "Курт");
map.put("Ноут", "Иван");
map.put("Гамми", "Сергей");
map.put("Маус", "Лена");
System.out.println(map.entrySet());
return map;
//напишите тут ваш код
}
public static void removeTheFirstNameDuplicates(HashMap<String, String> map) {
Iterator<HashMap.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
HashMap.Entry<String, String> pair = iterator.next();
HashMap<String, String> copy = new HashMap<String, String>(map);
for (Map.Entry<String, String> pair1 : copy.entrySet()) {
if ((pair1.getValue().equals(pair.getValue())&!(pair1.getKey().equals(pair.getKey()))))
{ removeItemFromMapByValue(map, pair.getKey()); } }
System.out.println(map.entrySet());
}
}//напишите тут ваш код
public static void removeItemFromMapByValue(HashMap<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) {
}
}
Дмитрий Ковтонюк
19 уровень
Не проходит проверку. Что не так?
Архивный
Комментарии (13)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Dzhin
8 мая 2018, 22:51полезный
Попробуй сделать так :
- в первом методе получи список значений (можешь поместить их в Аrraylist)
- потом циклами проверяешь в этом списке повторяющиеся значения
- если нашел повторяющиеся значение, то вызываете второй метод, который удаляет из map
+1
Dzhin
8 мая 2018, 22:53
Во второй метод нужно передать map из которого должен удалить и значение которое повторяется
0
Дмитрий Ковтонюк
9 мая 2018, 10:53
Попробовал. Последние 2 условия при проверке не выполняются.
0
Dzhin
9 мая 2018, 14:37
Ты меня неправильно понял. Ты не добавил значения в List и пытаешься пройти циклом по нему
0
Dzhin
9 мая 2018, 14:59решение
...
+2
Dzhin
9 мая 2018, 14:59
Вот первый метод по быстрому накидал.
0
Дмитрий Ковтонюк
10 мая 2018, 14:42
Спасибо. Я не думал, что командой map.values() можна залить значения с мапа в список. И цикл с количественным услувием - супер.
А я запутался в этой задаче...
0
Ярослав Java Developer Master
6 мая 2018, 20:33полезный
Map<String, String>
А ты создаешь конкретный HashMap. И очень странно ты чистишь дубликаты. Ты проверяешь, есть ли одно значение в наборе, где сразу все значения. У тебя всегда будет чистить как дубликаты, так и не дубликаты, потому что ты не учитываешь то, что тот объект, что ты достал, существует минимум в одном экземпляре.
+1
Дмитрий Ковтонюк
8 мая 2018, 20:16
Заменил второй метод:
и получил ошибку:
0
Ярослав Java Developer Master
8 мая 2018, 20:17полезный
Ошибка явно указывает, что ты передаешь в метод String, а должен передавать коллекцию HashMap со стрингами.
+1
Дмитрий Ковтонюк
8 мая 2018, 20:26
сорри, в комменте выше вставил свой код. Я так понимаю, что только эта команда может делать ошибку. Но это же вроде комманда для удаления пары:
как вариант может..: - но тоже не работает.. как быть?
0
Ярослав Java Developer Master
8 мая 2018, 20:28полезный
Посмотрите для начала на параметры, которые нужно передавать в метод :)
+1
Дмитрий Ковтонюк
8 мая 2018, 21:10
готово: скомпелировалось но не выполнило условия.
0