level06.lesson08.task04

Почему-то не проходит тестирование, хотя в IDE, вроде, все работает. Подскажите, пожалуйста, куда копать.


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

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

/* Класс ConsoleReader
Сделать класс ConsoleReader, у которого будут 4 статических метода:
String readString() – читает с клавиатуры строку
int readInt() – читает с клавиатуры число
double readDouble() – читает с клавиатуры дробное число
void readLn() – ждет нажатия enter [использовать readString()]
*/

public class ConsoleReader
{
    public static String readString() throws Exception
    {
        //Напишите тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String s = reader.readLine();
        return s;
    }

    public static int readInt() throws Exception
    {
        //Напишите тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String numString = reader.readLine();
        int num = Integer.parseInt(numString);
        return num;
    }

    public static double readDouble() throws Exception
    {
        //Напишите тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String doubString = reader.readLine();
        double doub = Double.parseDouble(doubString);
        return doub;
    }

    public static void readLn() throws Exception
    {
        //Напишите тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        boolean b = true;
        while(b) {
            if  (("").equals(readString())){
                b = false;
            }
        }
    }
}
  • ,

level16.lesson10.task05

/* Один для всех, все — для одного
1. Разберись, как работает программа.
1.1. Обрати внимание, что объект Water — один для всех нитей.

2. Реализуй метод ourInterruptMethod, чтобы он прерывал все нити из threads.
3. В методе run исправь значения переменных:
3.1. isCurrentThreadInterrupted — должна равняться значению метода isInterrupted у текущей нити.
3.2. threadName — должна равняться значению метода getName (реализовано в классе Thread) у текущей нити.
*/

С пунктом 2 разобрался.
Но на пунктах 3.1 и 3.2 завис.
Никак не могу понять как можно из класса обратиться к нити, которая пока еще не создана. Подскажите в каком направлении копать?

public static class Water implements Runnable {
        private String commonResource;

        public Water(String commonResource) {
            this.commonResource = commonResource;
        }

        public void run() {
            //fix 2 variables - исправь 2 переменных
            boolean isCurrentThreadInterrupted =
            String threadName =

            try {
                while (!isCurrentThreadInterrupted) {

                    System.out.println("Объект " + commonResource + ", нить " + threadName);
                    Thread.sleep(1000);
                }
            } catch (InterruptedException e) {
            }
        }
    }
  • ,

level15.lesson09.task02

Товарищи, по условию задачи все сделал.
Программа запускается и грамотно работает, но проверку не проходит.
Посмотрите что не так.

/* Статики 2
1. В статическом блоке считайте две переменные с консоли А и В с типом int.
2. Не забыть про IOException, который надо обработать в блоке catch.
3. Закрыть поток ввода методом close().
*/
  • ,

com.javarush.test.level07.lesson12.home03

Уверен, что не понял задание, разъясните пожалуйста…
Программа то работает, но тест не проходит.


package com.javarush.test.level07.lesson12.home03;

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

/* Максимальное и минимальное числа в массиве
Создать массив на 20 чисел. Заполнить его числами с клавиатуры. Найти максимальное и минимальное числа в массиве.
Вывести на экран максимальное и минимальное числа через пробел.
*/

public class Solution
{
    public static int max(ArrayList<Integer> list){
        int a = 0;
        for (int i = 0; i < list.size(); i++){
           int k = list.get(i);
            if (k > a){
                a = k;
            }
        }
        return a;
    }

    public static int min(ArrayList<Integer> list){
        int a = 0;
        for (int i = 0; i < list.size(); i++){
            int k = list.get(i);
            if (k < a){
                a = k;
            }
        }
        return a;
    }

    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> list = new ArrayList<Integer>();
            for (int i = 0; i < 20; i++){
                int j = Integer.parseInt(reader.readLine().trim());
                list.add(j);
            }


        int  maximum = max(list);
        int  minimum = min(list);




        System.out.print(maximum);
        System.out.print(" ");
        System.out.print(minimum);
    }
}


Уверен, что не понял задание, разъясните пожалуйста...

level08.lesson08.task03

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

level10.lesson11.bonus02

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

        HashMap<String, Integer> map = new HashMap<String, Integer>();
        while (true)
        {
            String sid = reader.readLine();
            if (sid.equals("")) break; else
            {
                int id = Integer.parseInt(sid);
                String name = reader.readLine();
                if (map.containsKey(name)) break; else
                {
                    map.put(name, id);
                }
            }
        }
        for (Map.Entry<String, Integer> pair : map.entrySet())
        {
            System.out.println(pair.getValue() + " " + pair.getKey());
        }
    }
}


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

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;
        }
    }
}


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