task 0824 или самое прекрасное задание. Работает правильно но не проходит проверку

и ко всему прочему, этот код проходит «типа компиляцию» на сервере однако компилируя джава файл через cmd (javac) компилятор ругается на созданный «типа разработчиками» переопределенный метод класса Human, а именно — метод toString()
Так как соответствовать тексту задания КОТОРОЕ ВОЗМОЖНО ПОНЯТЬ ЛИШЬ ИМЕННО ТАК КАК НУЖНО ПОТОМУ ЧТО ВСЕ РАСПИСАНО ИДЕАЛЬНО И ВОПРОСОВ ПО ЗАДАНИЮ СОВЕРШЕННО НЕ ВОЗНИКАЕТ...
  • ,

level08.lesson06.task02 замеры

Замерил время выполнения операций по задаче (там, где нужно сделать всего по 10000 раз). Получил интересные результаты.

ArrayList: insert: 17
ArrayList: get: 1
ArrayList: set: 5
ArrayList: remove: 16
LinkedList: insert: 4
LinkedList: get: 166
LinkedList: set: 198
LinkedList: remove: 2

Если посмотреть на время выполнения, то LinkedList выигрывает в операциях вставки/удаления в разы, но проигрывает во всех остальных операциях в десятки и сотни раз!
  • ,

level08.lesson08.task05 компилируется тест не проходит

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


Мой вариант ниже компилируется. Проверку не проходит. Уважаемые, подскажите, что не так?

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.HashSet;


public class Solution
{
       
    public static HashMap<String, String> createMap()
    {
        String tempL, tempF, tempI;
        HashMap<String, String> map = new HashMap<String, String>();
        String fName= "Sergey",  lName = "Ivanov"; 
   
        map.put (lName, fName);
        map.put((lName.concat("a")), fName);
         for (int i = 2; i < 8; i++)
         {  
             tempI = Integer.toString(i);
             tempF = fName.concat(tempI);
             tempL = lName.concat(tempI);
             map.put(tempL, tempF);  
       }  
         return (map);
    }
  
   
    public static void removeTheFirstNameDuplicates(HashMap<String, String> map)
    {
        String valueTemp;
        Set<String> setAll  = new HashSet<String>();    
        Set<String> setDubl = new HashSet<String>();
        for (Map.Entry<String, String> pair : map.entrySet())
            { 
            valueTemp =pair.getValue(); 
            if (setAll.contains(valueTemp)) setDubl.add(valueTemp);
            else setAll.add(valueTemp); 
              
            }

        for (String s  : setDubl) removeItemFromMapByValue (map, s);
  
    }
     
    
  
    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());
        }
    }
}
  • ,

level08.lesson08.task02

Не могу понять в чем проблема: в идее компилируется и отрабатывает, при проверке на сервере возникает ошибка времени выполнения. Никаких бесконечных циклов и магических черных дыр. Есть у кого идеи?

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Iterator;


/* Удалить все числа больше 10
Создать множество чисел(Set<Integer>), занести туда 20 различных чисел.
Удалить из множества все числа больше 10.
*/

public class Solution
{
    public static HashSet<Integer> createSet()
    {
        //напишите тут ваш код

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        HashSet<Integer> set = new HashSet<>();

        Integer setItem;

        for (int i = 0; i < 20; i++)
        {
            try{
                setItem = Integer.parseInt(reader.readLine());
                set.add(setItem);
            }catch (IOException exception){

            }
        }

        return set;

    }

    public static HashSet<Integer> removeAllNumbersMoreThan10(HashSet<Integer> set)
    {
        //напишите тут ваш код
        Integer number;

        for (Iterator<Integer> iter = set.iterator(); iter.hasNext(); )
        {

            number = iter.next();

            if(number > 10){
                iter.remove();
            }
        }

        return set;

    }

    public static void main (String[] args){

        HashSet<Integer> set = createSet();

        set = removeAllNumbersMoreThan10(set);

    }
}

level08.lesson11.bonus01 с ума сойдешь, работает как надо, с патчами все ок выводит все как надо

/* Номер месяца
Программа вводит с клавиатуры имя месяца и выводит его номер на экран в виде: «May is 5 month».
Используйте коллекции.
*/

public class Solution
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String str = reader.readLine();
String strDta = (str + " 1 2013");
Date dta = new Date(strDta);

Map<Integer, String> list = new HashMap<Integer, String>();
list.put(0, «January»);
list.put(1, «February»);
list.put(2, «March»);
list.put(3, «April»);
list.put(4, «May»);
list.put(5, «June»);
list.put(6, «July»);
list.put(7, «August»);
list.put(8, «September»);
list.put(9, «October»);
list.put(10, «November»);
list.put(11, «December»);
System.out.println(list.get(dta.getMonth()) + " is " + (dta.getMonth()+1) + " month");
}

}
  • ,

package com.javarush.test.level08.lesson11.home02;

Здравствуйте. Подскажите почему не проходит проверку следующий код? Результат компилится правильно.

package com.javarush.test.level08.lesson11.home02;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/* Множество всех животных
1. Внутри класса Solution создать public static классы Cat, Dog.
2. Реализовать метод createCats, котороый должен возвращать множество с 4 котами.
3. Реализовать метод createDogs, котороый должен возвращать множество с 3 собаками.
4. Реализовать метод join, котороый должен возвращать объединенное множество всех животных - всех котов и собак.
5. Реализовать метод removeCats, котороый должен удалять из множества pets всех котов, которые есть в множестве cats.
6. Реализовать метод printPets, котороый должен выводить на экран всех животных, которые в нем есть. Каждое животное с новой строки
*/

public class Solution
{
    public static void main(String[] args)
    {
        Set<Cat> cats = createCats();
        Set<Dog> dogs = createDogs();

        Set<Object> pets = join(cats, dogs);
        printPets(pets);

        removeCats(pets, cats);
        printPets(pets);
    }

    public static Set<Cat> createCats()
    {
        HashSet<Cat> result = new HashSet<Cat>();
        //напишите тут ваш код
        for (int i=0; i<4; i++)
        {
            result.add(new Cat());
        }
        return result;
    }

    public static Set<Dog> createDogs()
    {
        //напишите тут ваш код
        HashSet<Dog> result = new HashSet<Dog>();
        for (int i=0; i<3; i++)
        {
            result.add(new Dog());
        }
        return result;
    }

    public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs)
    {
        //напишите тут ваш код
        HashSet<Object> pets = new HashSet<Object>();
        {
            pets.add(cats);
            pets.add(dogs);
        }
        return pets;
    }

    public static void removeCats(Set<Object> pets, Set<Cat> cats)
    {
        //напишите тут ваш код
        for (Iterator<Object> iterator = pets.iterator();iterator.hasNext();)
        {
            Object curObj = iterator.next();
            if (curObj.toString().contains(cats.toString()))
            {
                pets.remove(curObj);
            }
        }
    }

    public static void printPets(Set<Object> pets)
    {
        //напишите тут ваш код
        for (Object x : pets)
        {
            System.out.println(x.toString());
        }
    }

    //напишите тут ваш код
    public static class Dog
    {
    }

    public static class Cat
    {
    }
}

Level08.lesson11.bonus02

Задача решена через Map. Работает корректно. В цикле for можно ограничить кол-во пар «ключ-значение» по желанию. Можно ввести переменную n и забивать HashMap<Город, Семья> до n-посинения.
Через ArrayList/List делать смысла не вижу. Просто будут искусственно связаны i и i+1 элементы.
Перебивать код только для того, чтобы валидатор задачу съел, не хочу.
В решении через Map логика есть. В решении через List, имхо, маловато её.

package com.javarush.test.level08.lesson11.bonus02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;



/* Нужно добавить в программу новую функциональность
Задача: Программа определяет, какая семья (фамилию) живёт в доме с указанным номером.
Новая задача: Программа должна работать не с номерами домов, а с городами:
Пример ввода:
Москва
Ивановы
Киев
Петровы
Лондон
Абрамовичи

Лондон

Пример вывода:
Абрамовичи
*/

public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        HashMap<String, String> map = new HashMap<String, String>();



        for (int i = 0; i < 3; i++)
        {
            String k = reader.readLine();
            String v = reader.readLine();
            map.put(k, v);
        }

        String city = reader.readLine();

        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();

        while (iterator.hasNext())
        {
            Map.Entry<String, String> pair = iterator.next();
            String key = pair.getKey();
            String value = pair.getValue();

            if (key.equals(city))
                System.out.println(value);
        }

    }
}

level08.lesson11.home02;

Не знаю в чем проблема, нажимаю проверить и через 10 секунд появляется окно: программа работала слишком долго и была закрыта. Помогите разобраться в этой теме и что за removeAll и addAll.

package com.javarush.test.level08.lesson11.home02;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Objects;
import java.util.Set;

/* Множество всех животных
1. Внутри класса Solution создать public static классы Cat, Dog.
2. Реализовать метод createCats, котороый должен возвращать множество с 4 котами.
3. Реализовать метод createDogs, котороый должен возвращать множество с 3 собаками.
4. Реализовать метод join, котороый должен возвращать объединенное множество всех животных - всех котов и собак.
5. Реализовать метод removeCats, котороый должен удалять из множества pets всех котов, которые есть в множестве cats.
6. Реализовать метод printPets, котороый должен выводить на экран всех животных, которые в нем есть. Каждое животное с новой строки
*/

public class Solution
{

    public static void main(String[] args)
    {
        Set<Cat> cats = createCats();
        Set<Dog> dogs = createDogs();

        Set<Object> pets = join(cats, dogs);
        printPets(pets);

        removeCats(pets, cats);
        printPets(pets);
    }

    public static Set<Cat> createCats()
    {
        HashSet<Cat> result = new HashSet<Cat>();

        //Написать тут ваш код
        result.add(new Cat());
        result.add(new Cat());
        result.add(new Cat());
        result.add(new Cat());

        return result;
    }

    public static Set<Dog> createDogs()
    {
        HashSet<Dog> result = new HashSet<Dog>();
        //Написать тут ваш код
        result.add(new Dog());
        result.add(new Dog());
        result.add(new Dog());

        return result;
    }

    public static Set<Object> join(Set<Cat> cats, Set<Dog> dogs)
    {
        //Написать тут ваш код
        HashSet<Object> result = new HashSet<Object>();
        for(Cat cat : cats){
            result.add(cat);
        }
        for(Dog dog : dogs){
            result.add((dog));
        }

        return result;
    }

    public static void removeCats(Set<Object> pets, Set<Cat> cats)
    {
        //Написать тут ваш код
       Iterator<Object> itpet = pets.iterator();
       Iterator<Cat> itcat = cats.iterator();
        while(itpet.hasNext()){
            while (itcat.hasNext()){
                if(itcat.next().equals(itpet.next())){
                    itpet.remove();
                }
            }
        }



    }
    public static void printPets(Set<Object> pets)
    {
        //Написать тут ваш код
        for(Object pet : pets){
            System.out.println(pet);
        }
    }

    //Написать тут ваш код
    public static class Cat{

    }
       public static class Dog{
       }
}


level08.lesson08.task04;

Не компилируется в IDEA, что делать?
package com.javarush.test.level08.lesson08.task04;

import java.util.*;

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

public class Solution
{
    public static void main(String[] args) {
    HashMap<String, Date> map2 = createMap();
    removeAllSummerPeople(map2);


    }

    public static HashMap<String, Date> createMap()
    {
        HashMap<String, Date> map = new HashMap<String, Date>();
        map.put("Сталлоне", new Date("JUNE 1 1980"));

        //Напишите тут ваш код
        map.put("Уваров", new Date("OCTOBER 25 2000"));
        map.put("Семнов", new Date("NOVEMBER 21 2001"));
        map.put("Стулов", new Date("JUNUARY 15 2002"));
        map.put("Аккакий", new Date("DECEMBER 25 2003"));
        map.put("Новожилов", new Date("JULY 23 1979"));
        map.put("Уткин", new Date("AUGUST 5 2050"));
        map.put("Мокеев", new Date("CEPTEMBER 2 2011"));
        map.put("Коротков", new Date("OCTOBER 27 1997"));
        map.put("Романов", new Date("JUNE 17 1998"));
        map.put("Коровин", new Date("MARCH 16 1999"));
        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> pair = iterator.next();
            Date date = pair.getValue();
            if ( (int) date.getMonth() > 4 && (int) date.getMonth() < 8){
            iterator.remove();
            }

        }

    }
}
  • ,

Задача level08.lesson11.home02

Вроде бы все компилируется и на экран объекты выводятся, но задача не засчитывается, что я не правильно понял?

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/* Множество всех животных
1. Внутри класса Solution создать public static классы Cat, Dog.
2. Реализовать метод createCats, котороый должен возвращать множество с 4 котами.
3. Реализовать метод createDogs, котороый должен возвращать множество с 3 собаками.
4. Реализовать метод join, котороый должен возвращать объединенное множество всех животных — всех котов и собак.
5. Реализовать метод removeCats, котороый должен удалять из множества pets всех котов, которые есть в множестве cats.
6. Реализовать метод printPets, котороый должен выводить на экран всех животных, которые в нем есть. Каждое животное с новой строки
*/

public class Solution
{
public static void main(String[] args)
{
Setcats = createCats();
Setdogs = createDogs();

Setpets = join(cats, dogs);
printPets(pets);

removeCats(pets, cats);
printPets(pets);
}

public static SetcreateCats()
{
HashSetresult = new HashSet();

result.add(new Cat("Васька"));
result.add(new Cat("Попива"));
result.add(new Cat("Мурка"));
result.add(new Cat("Артоша"));

return result;
}

public static SetcreateDogs()
{
HashSetdogs = new HashSet();
dogs.add(new Dog("Спайк"));
dogs.add(new Dog("Жучка"));
dogs.add(new Dog("Полкан"));
return dogs;
}

public static Setjoin(Setcats, Setdogs)
{
HashSetpets = new HashSet();
pets.add(cats);
pets.add(dogs);
return pets;
}

public static void removeCats(Setpets, Setcats)
{
pets.remove(cats);
}

public static void printPets(Setpets)
{
Iteratorite = pets.iterator();
while (ite.hasNext()){
Object text = ite.next();
System.out.println(text);
}
}

public static class Cat{
String name;

public Cat(String name){
this.name = name;
}
}
public static class Dog{
String name;

public Dog(String name){
this.name = name;
}
}
}
  • ,

level08.lesson11.home05

Вроде все правильно выводит, но проверку не проходит. Может кто подскажет что тут не так?
package com.javarush.test.level08.lesson11.home05;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Мама Мыла Раму. Теперь с большой буквы
Написать программу, которая вводит с клавиатуры строку текста.
Программа заменяет в тексте первые буквы всех слов на заглавные.
Вывести результат на экран.

Пример ввода:
  мама     мыла раму.

Пример вывода:
  Мама     Мыла Раму.
*/

public class Solution
{


    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        s=s.trim();
        String[] S= s.split(" ");

        for (int i =0;i<S.length;i++)
        {
            char a[]=S[i].toCharArray();

            a[0]=Character.toUpperCase(a[0]);

            System.out.print(a);

            if (i!=S.length-1)
                System.out.print(" ");

        }







    }


}
  • ,

level08.lesson08.task03

Что не так?


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

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

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

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

        map.put("Pushkin","Alexander");//1
        map.put("Lermontov","Mikhail");//2
        map.put("Tolstoy","Aleksey");//3
        map.put("Bukovsky","Charles");//4
        map.put("Tolstoy","Nikolay");//5
        map.put("Presley", "Elvis");//6
        map.put("Jackson", "Michael");//7
        map.put("Jobs", "Steve");//8
        map.put("Gates", "Bill");//9
        map.put("Connor", "John");//10

        return map;
    }

    public static int getCountTheSameFirstName(HashMap<String, String> map, String name)
    {
        int count=0;
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();

        while(iterator.hasNext())
        {
            Map.Entry<String, String> pair = iterator.next();
            String FirstName = pair.getValue();
            if (FirstName == name) count++;
        }
          return count;
    }

    public static int getCountTheSameLastName(HashMap<String, String> map, String familiya)
    {
        //Напишите тут ваш код
        int count=0;
        Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();

        while(iterator.hasNext())
        {
            Map.Entry<String, String> pair = iterator.next();
            String LastName = pair.getKey();
            if (LastName == familiya) count++;
        }
        return count;
    }
}