вторник, 24 января 2017 г.

level08.lesson08.task05

package com.javarush.test.level08.lesson08.task05;

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/* Удалить людей, имеющих одинаковые имена
Создать словарь (Map) занести в него десять записей по принципу «фамилия» - «имя».
Удалить людей, имеющих одинаковые имена.
*/

public class Solution
{
    public static HashMap createMap()
    {
        //напишите тут ваш код
        HashMap map = new HashMap();
        map.put("Ivanov","Ivan");
        map.put("Petrov","Sasha");
        map.put("Sidorov","Ivan");
        map.put("Lermontov","Kolya");
        map.put("Pushkin","Olya");
        map.put("Stalonne","Galya");
        map.put("Reygan","Inna");
        map.put("Drobot","Ivan");
        map.put("Pirogov","Stepan");
        map.put("Krab","Petro");
        return map;

    }

    public static void removeTheFirstNameDuplicates(HashMap map)
    {
        //напишите тут ваш код
        HashMap copy = new HashMap(map);
        for (String value: copy.values())
            if (Collections.frequency(copy.values(),value) > 1)
                removeItemFromMapByValue(map,value);


    }

    public static void removeItemFromMapByValue(HashMap map, String value)
    {
        HashMap copy = new HashMap(map);
        for (Map.Entry pair: copy.entrySet())
        {
            if (pair.getValue().equals(value))
                map.remove(pair.getKey());
        }
    }
}

1 комментарий:

  1. Решение 6 задачи:

    public class Solution {
    public static Map createMap() {
    Map map = new HashMap<>();
    map.put("Jonh", 1520);
    map.put("Bill", 450);
    map.put("Jack", 750);
    map.put("Matt", 125);
    map.put("Antony", 650);
    map.put("Serg", 1110);
    map.put("Micho", 870);
    map.put("Alan", 250);
    map.put("Donald", 550);
    map.put("Sam", 800);

    return map;
    }
    public static void removeItemFromMap(Map map) {
    for (Iterator> entries = map.entrySet().iterator(); entries.hasNext();) {

    // Iterator - тип перменной типа >
    // создаем переменную типа Iterator и называем ее entries
    // присваиваем ей значение всех множеств пар из map ALL.K-V

    Map.Entry entry = entries.next();

    // Map.Entry - тип переменной одного поля K-V
    // создаем переменную - entry
    // и присваиваем ей значение следующего next из всех множеств;

    if (entry.getValue() < 500) // если зп меньше 500 в значении getValue полученного одного поля
    entries.remove(); // то берем все множество, и удаляем поле, на котором сейчас установлен итератор
    }

    ОтветитьУдалить