level08.lesson08.task04


public class Solution
{
    public static Map<String,Date> createMap()
    {
        HashMap<String, Date> map = new HashMap<String, Date>();
        map.put("Stallone", new Date("JUNE 1 1980"));
        map.put("Viktor", new Date("JUNE 1 1980"));
        map.put("Pelevin", new Date("JUNE 1 1980"));
        map.put("Gruzlov", new Date("JUNE 1 1980"));
        map.put("Petrov", new Date("JUNE 1 1980"));
        map.put("Gonduras", new Date("MAY 1 1956"));
        map.put("Peter", new Date("MAY 23 1956"));
        map.put("Gnomov", new Date("MAY 5 1994"));
        map.put("Putin", new Date("JUNE 29 1992"));
        map.put("Medvedev", new Date("JUNE 23 1990"));


return map;
    }

    public static void removeAllSummerPeople(Map<String, Date> map)
    {
        Iterator<Map.Entry<String,Date>> it =  map.entrySet().iterator();
        while(it.hasNext()){
            int mon = it.next().getValue().getMonth();
            if(mon>4&&mon<8) it.remove();
        }

    }

}

Вроде бы все работает правильно. Не подскажите почему не принимается задача?

level08.lesson08.task04

класс DATE в для текущей постановки задачи устарел.
Вместо него нужно применять класс GregorianCalendar.
Задача решена с его использованием, и, естественно, не компилируется на сервере. Когда будет пофиксено решение?
  • ,

level08.lesson08.task04

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

import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.HashSet;



/* Удалить всех людей, родившихся летом
Создать словарь (Map<String, Date>) и занести в него десять записей по принципу: «фамилия» - «дата рождения».
Удалить из словаря всех людей, родившихся летом.
*/

public class Solution
{
    public static void main(String[] args)
    {
        HashMap<String,Date> map =createMap();
        removeAllSummerPeople(map);
        for (Map.Entry<String, Date> pair : map.entrySet())
        {
            System.out.println(pair.getKey() + " - " + pair.getValue());
        }
    }

    public static HashMap<String, Date> createMap()
    {
        HashMap<String, Date> map = new HashMap<String, Date>();
        map.put("Stallone", new Date("JUNE 1 1980"));
        map.put("Stlone", new Date("AUGUST 1 1980"));
        map.put("Stane", new Date("JUNE 2 1980"));
        map.put("Stallne", new Date("AUGUST 1 1980"));
        map.put("Stalloe", new Date("DECEmBER 1 1980"));
        map.put("Stallone", new Date("JANUARY 1 1980"));
        map.put("Sallone", new Date("MARCH 1 1980"));
        map.put("Sallon", new Date("JUNE 1 1982"));
        map.put("Stalone", new Date("JUNE 1 1983"));
        map.put("Stae", new Date("JUNE 1 1984"));

        //напишите тут ваш код
        return map;
    }

    public static void removeAllSummerPeople(HashMap<String, Date> map)
    {

        HashSet<String> set = new HashSet<String>();
        for (Map.Entry<String, Date> pair : map.entrySet()){
            int time = pair.getValue().getMonth() ;

            if (time > 4 && time < 8 ){
                set.add(pair.getKey());
            }
        }

        for (String s : set){
            map.remove(s);
        }
        //напишите тут ваш код

    }
}


результат правильный. сервер не пропускает. укажите слепцу на его ошибку…
  • ,

level08.lesson08.task04

Где ошибка? На Идее компилируется и все работает нормально а тут сервер не хочет компилировать!!!


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

import java.util.Date;
import java.util.HashMap;

/* Удалить всех людей, родившихся летом
Создать словарь (Map<String, Date>) и занести в него десять записей по принципу: «фамилия» - «дата рождения».
Удалить из словаря всех людей, родившихся летом.
*/

public class Solution
{
    public static HashMap<String, Date> createMap()
    {
        HashMap<String, Date> map = new HashMap<String, Date>();

        map.put("Stallone", new Date("JUNE 1 1980"));
        map.put("Lee", new Date("JANUARY 2 1990"));
        map.put("Norris", new Date("AUGUST 22 1942"));
        map.put("Simpson", new Date("JULY 13 1999"));
        map.put("Stallin", new Date("OCTOBER 5 1932"));
        map.put("Lenin", new Date("SEPTEMBER 7 1978"));
        map.put("Putin", new Date("FEBRUARY 21 1967"));
        map.put("Askarov",new Date("MARCH 10 1954"));
        map.put("Musin", new Date("NOVEMBER 2 1999"));
        map.put("kiska",new Date("JULY 7 1878"));

        return map;

    }

    public static void removeAllSummerPeople(HashMap<String, Date> map)
    {
        HashMap<String, Date> returnMap = new HashMap<String, Date>();
        for (HashMap.Entry<String,Date> entry : map.entrySet()){
            if (entry.getValue().getMonth() < 5 || entry.getValue().getMonth() > 7)
                returnMap.put(entry.getKey(),entry.getValue());
        }
        map.clear();

        map.putAll(returnMap);
    }
}

level08.lesson08.task04

Всем доброе время суток.
Вот и я обращаюсь к уважаемым форумчанам за помощью.
Код срабатывает, результат выводит корректный, но валидатор задач, видимо, ожидает какого то другого кода…
У кого есть догадки чем может ему не нравиться код, который приведен ниже:

level08.lesson08.task04

В задаче был указан тип Date с конструктором, который позволяет присваивать значение даты в новый объект типа Date, но в среде разработки было указано, что такой конструктор deprecated, т.е. устарел.
Я указал GregorianCalendar. Задача выполняется, но не проходит тестирование.

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

import org.omg.CORBA._IDLTypeStub;

import java.util.*;

/* Удалить всех людей, родившихся летом
Создать словарь (Map<String, Date>) и занести в него десять записей по принципу: «фамилия» - «дата рождения».
Удалить из словаря всех людей, родившихся летом.
*/

public class Solution
{
    public static void main(String[] args) {
        removeAllSummerPeople(createMap());

    }
    public static HashMap<String, GregorianCalendar> createMap()
    {
        HashMap<String, GregorianCalendar> map = new HashMap<String, GregorianCalendar>();
        map.put("Сталлоне0", new GregorianCalendar(1987, 0, 31));
        map.put("Сталлоне1", new GregorianCalendar(1987, 0, 31));
        map.put("Сталлоне2", new GregorianCalendar(1987, 0, 31));
        map.put("Сталлоне3", new GregorianCalendar(1987, 0, 31));
        map.put("Сталлоне4", new GregorianCalendar(1987, 4, 28));
        map.put("Сталлоне5", new GregorianCalendar(1987, 6, 26));
        map.put("Сталлоне6", new GregorianCalendar(1987, 5, 24));
        map.put("Сталлоне7", new GregorianCalendar(1987, 7, 12));
        map.put("Сталлоне8", new GregorianCalendar(1987, 0, 1));
        map.put("Сталлоне9", new GregorianCalendar(1988, 2, 3));

        //Напишите тут ваш код
        return (HashMap<String, GregorianCalendar>) map;

    }

    public static void removeAllSummerPeople(HashMap<String, GregorianCalendar> map)
    {
        //Напишите тут ваш код
        //Создается цикл перебора коллекции с итератором
        for (Iterator<Map.Entry<String, GregorianCalendar>> iterator = map.entrySet().iterator(); iterator.hasNext();)
        {
            //в переменную pair присваиваются пары ключ + значение
            Map.Entry<String, GregorianCalendar> pair = iterator.next();
            //проверяется месяц
            if (pair.getValue().get(Calendar.MONTH) >= 5 && pair.getValue().get(Calendar.MONTH) <= 7)
            {
            iterator.remove();
            }
        }

    }
}
  • ,

level08.lesson08.task04

Почему не принимается этот код? В Intellij IDEA все прекрасно работает.




/* Удалить всех людей, родившихся летом
Создать словарь (Map<String, Date>) и занести в него десять записей по принципу: «фамилия» - «дата рождения».
Удалить из словаря всех людей, родившихся летом.
*/

 public class Solution {
    public static HashMap<String, Date> createMap() {

        HashMap<String, Date> map = new HashMap<String, Date>();
        map.put("1", new Date("JANUARY 1 1980"));
        map.put("2", new Date("OCTOBER 21 1996"));
        map.put("3", new Date("FEBRUARY 2 1980"));
        map.put("4", new Date("MAY 26 1996"));
        map.put("5", new Date("DECEMBER 6 1980"));
        map.put("6", new Date("OCTOBER 22 1996"));
        map.put("7", new Date("JULY 7 1980"));
        map.put("8", new Date("OCTOBER 28 1996"));
        map.put("9", new Date("AUGUST 21 1980"));
        map.put("10", new Date("NOVEMBER 24 1996"));
        removeAllSummerPeople(map);
        return  map;

    }

    public static void removeAllSummerPeople(HashMap<String, Date> map) {
        Iterator<Map.Entry<String, Date>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Date> entry = iterator.next();
            Date it = entry.getValue();
            if ((it.getMonth() == 5) || (it.getMonth() == 6) || (it.getMonth() == 7)) {
                iterator.remove();
            }
        }
    }
}

level08.lesson08.task04

Ребятки, подскажите, пожалуйста, что не так?
Не только не проходит проверку, но даже не компилится :(
package com.javarush.test.level08.lesson08.task04;

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

/* Удалить всех людей, родившихся летом
Создать словарь (Map<String, Date>) и занести в него десять записей по принципу: «фамилия» - «дата рождения».
Удалить из словаря всех людей, родившихся летом.
*/

public class Solution
{
    public static HashMap<String, Date> createMap()
    {
        HashMap<String, Date> map = new HashMap<String, Date>();

        map.put("RiDD", new Date("JANUARY 25 1992"));
        map.put("Machet1k", new Date("AUGUST 27 1992"));
        map.put("mama", new Date("JUNE 29 1971"));
        map.put("papa", new Date("APRIL 17 1969"));
        map.put("baba", new Date("NOVEMBER 1 1936"));
        map.put("deda", new Date("AUGUST 29 1933"));
        map.put("Michael Jackson", new Date("AUGUST 29 1958"));
        map.put("Anna", new Date("March 7 1991"));
        map.put("SLI1GHT", new Date("March 18 1992"));
        map.put("Aaron Paul", new Date("AUGUST 27 1979"));

        return map;
    }

    public static void removeAllSummerPeople(HashMap<String, Date> map)
    {
        Iterator<Map.Entry<String, Date>> iterator = map.entrySet().iterator();
        while (iterator.hasNext())
        {
            Map.Entry<String, Date> para = iterator.next();
            if (para.getValue().getMonth() > 4 && para.getValue().getMonth() < 8)
                map.remove(para.getKey());
        }
    }

    public static void main(String[] args) throws Exception
    {
        HashMap<String, Date> map = createMap();
        removeAllSummerPeople(map);
        for (Map.Entry<String, Date> para : map.entrySet())
        {
            System.out.println(para.getValue());
        }
    }
}