Смотритель: hubert
  • ,

level08lesson08task02

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

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

/* Удалить все числа больше 10
Создать множество чисел(Set), занести туда 20 различных чисел.
Удалить из множества все числа больше 10.
*/
Скажите, пожалуйста как реализовать удаление чисел больше 10. Это же не перебор с помощью contains() всех чисел от 11 и ++++.
  • ,

level08.lesson08.task03

Возник вопрос по задаче. Нужно создать словарь Map, заполнить его и с помощью функции проверить кол-во совпадений в ключе и значении.

Так вот. В коде я попытался передать словарь в функцию и там пройдясь по циклу подсчитать кол-во совпадений, но программа выдает неверный результат. В чем ошибка?



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

level05.lesson12.home05

Собственно написал программу, но что то не учел, так как сумму она считает но при попытке выйти из программы выдает ошибку… подскажите в чем я просчитался?
package com.javarush.test.level05.lesson12.home05;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/* Вводить с клавиатуры числа и считать их сумму
Вводить с клавиатуры числа и считать их сумму, пока пользователь не введёт слово «сумма».
 Вывести на экран полученную сумму.
*/

public class Solution
{

    public static void main(String[] args) throws Exception
    {
        int n=0;
        BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(System.in));
        String s="0";
        while (!s.equals("сумма"))
        {
            s=bufferedReader.readLine();
            int m=Integer.parseInt(s);
            n=n+m;
        }
        System.out.println(n);
    }
}
  • ,

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

Столкнулся с трудностью в задаче с Коллекцией HashMap из котов.
Вот собственно код:


/* Коллекция HashMap из котов
Есть класс Cat с полем имя (name, String).
Создать коллекцию HashMap<String, Cat>.
Добавить в коллекцию 10 котов, в качестве ключа использовать имя кота.
Вывести результат на экран, каждый элемент с новой строки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        String[] cats = new String[] {"васька", "мурка", "дымка", "рыжик", "серый", "снежок", "босс", "борис", "визя", "гарфи"};

        HashMap<String, Cat> map = addCatsToMap(cats);

        for (Map.Entry<String, Cat> pair : map.entrySet())
        {
            System.out.println(pair.getKey() + " - " + pair.getValue());
        }
    }


    public static HashMap<String, Cat> addCatsToMap(String[] cats)
    {
        Map<String, Cat> map = new HashMap<String, Cat>();
        for(int i = 0; i < 10; i++)
        {
            Cat cat = new Cat(cats[i]);
            map.put(cats[i], cat);
        }
        return (HashMap<String, Cat>) map;

    }


    public static class Cat
    {
        String name;

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

        @Override
        public String toString()
        {
            return name != null ? name.toUpperCase() : null;
        }
    }
}


Пытаюсь заполнить список именами котов и объектами, но в задаче видимо требуется что-то другое, только я никак не пойму, что именно. Кто-нибудь подскажет что конкретно нужно сделать в задаче?

com.javarush.test.level09.lesson08.task04/5

/* Перехват checked исключений
В методе processExceptions обработайте все checked исключения.
Нужно вывести на экран каждое возникшее checked исключение.
Можно использовать только один блок try…
*/

public class Solution {
public static void main(String[] args) {
processExceptions(new Solution());

}

public static void processExceptions(Solution obj) {
obj.method1();
obj.method2();
obj.method3();
}

public void method1() throws IOException {
throw new IOException();
}

public void method2() throws NoSuchFieldException {
throw new NoSuchFieldException();
}

public void method3() throws RemoteException {
throw new RemoteException();
}
}

Не пойму никак, как решить. Получается обработать только одно исключение, а до остальных не доходит.
  • ,

level16.lesson13.home06

package com.javarush.test.level16.lesson13.home06;

/* Создание по образцу
Разберись, как работает программа.
По образу и подобию CountDownRunnable создай нить CountUpRunnable, которая выводит значения в нормальном порядке — от 1 до 5.
*/

level05.lesson05.task02

Не могу понять, вроде всё на месте, только что-то не так.

public class Cat
{
public String name;
public int age;
public int weight;
public int strength;
public Cat()
{
}
public static void main(String[] args)
{
Cat Cat1 = new Cat();
Cat1.name = «Cat1»;
Cat1.age = 4;
Cat1.weight = 5;
Cat1.strength = 8;
Cat anotherCat = new Cat();
anotherCat.name = «Cat2»;
anotherCat.age = 15;
anotherCat.weight = 20;
anotherCat.strength = 2;
Cat1.fight(anotherCat);
}
public boolean fight (Cat anotherCat)
{
return (Cat.strength < anotherCat.strength);
}
}

Подскажите, что читать внимательно, зачем нужен public Cat() (и что это вообще такое), и почему метод boolean не видит первого кота?
  • ,

Level16.lesson13.home03

Не могу пройти задание:

/* Рекурсивное создание нитей
1. Внутри класса Solution создай нить public static GenerateThread.
2. Создай конструктор GenerateThread, который должен:
2.1. Вызвать конструктор суперкласса с параметром String — номером созданной нити. Используй countCreatedThreads.
2.2. Запустить текущую нить.
2.3. Номер первой нити должен начинается с 1.
3. Переопредели метод toString, для этого внутри GenerateThread нажми Alt+Insert -> Override Methods. Начни печатать toString.
3.1. Метод toString должен возвращать № текущей нити и слово " created". Используй getName(). Пример: [8 created]
4. Пока количество созданных нитей меньше Solution.count метод run должен:
4.1. создать новую нить типа GenerateThread.
4.2. Вывести в консоль созданную в пункте 4.1. нить.
5. В итоге должно быть выведено в консоль 15 строк.
*/

Код:

public class Solution {
    static int count = 15;
    static volatile int countCreatedThreads;

    public static void main(String[] args) {
        System.out.println( new GenerateThread() );
    }

    public static class GenerateThread extends Thread {
        public GenerateThread()
        {
            super( String.valueOf( ++countCreatedThreads ) );
            run();
        }

        @Override
        public void run()
        {
            while ( countCreatedThreads < Solution.count )
            {
                System.out.println( new GenerateThread() );
            }
        }

        @Override
        public String toString()
        {
            return getName() + " created";
        }


    }
}

Результат работы кода:
15 created
14 created
13 created
12 created
11 created
10 created
9 created
8 created
7 created
6 created
5 created
4 created
3 created
2 created
1 created

Тест не проходит. Подскажите куда копать?..
  • ,

level07.lesson09.task04

package com.javarush.test.level07.lesson09.task04;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

/* Буква «р» и буква «л»
1. Создай список слов, заполни его самостоятельно.
2. Метод fix должен:
2.1. удалять из списка строк все слова, содержащие букву «р»
2.2. удваивать все слова содержащие букву «л».
2.3. если слово содержит и букву «р» и букву «л», то оставить это слово без изменений.
Пример:
роза
лира
лоза
Выходные данные:
лира
лоза
лоза
*/

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

ArrayList(String) list = new ArrayList(String)();
list.add(«роза»); //0
list.add(«лира»); //1
list.add(«лоза»); //2
list.add(«лор»);
list.add(«лом»);
list.add(«ром»);
list = fix(list);

for (String s: list)
{
System.out.println(s);
}
}

public static ArrayList ( String ) fix(ArrayList(String) list) {
for(int i = 0; i < list.size(); )
{
if(list.get(i).contains(«р») && list.get(i).contains(«л»))
i++;
else
{
if (list.get(i).contains(«л»))
{
list.add(i, list.get(i));
i += 2;
}
else
{
if (list.get(i).contains(«р»))
list.remove(i);
}
}
}
return list;
}
}

Программа работает, но проверку не проходит