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

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

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

level18.lesson08.task05;

Не ясно само задание:
package com.javarush.test.level18.lesson08.task05;

import java.util.List;

/* Таблица
Измените класс TableInterfaceWrapper так, чтобы он стал Wrapper-ом для ATableInterface.
Метод setModel должен вывести в консоль количество элементов в новом листе перед обновлением модели
Метод getHeaderText должен возвращать текст в верхнем регистре — используйте метод toUpperCase()
*/
Моя логика выполнения такова:
Наследуемся от интерфейса.(Хотя непонятно зачем интерфейсу класс обертка)
Переопределяем методы: с верхним регистром вроде все понятно, а вот с «Метод setModel должен вывести в консоль количество элементов в новом листе перед обновлением модели» размер листа как вывести понятно, а что за обновление модели непонятно(также не ясно в какую сторону копать). Подскажите пожалуйста.
  • ,

level07.lesson09.task05

Нид хэлп, господа!
Задание:
/* Удвой слова
1. Введи с клавиатуры 10 слов в список строк.
2. Метод doubleValues должен удваивать слова по принципу a,b,c -> a,a,b,b,c,c.
3. Используя цикл for выведи результат на экран, каждое значение с новой строки.
*/
Мой код:
public class Solution
{
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<String> list = new ArrayList<String>();
        for (int i = 0; i < 10; i++)
        {
            list.add(reader.readLine());
        }
        ArrayList<String> result = doubleValues(list);
        for (int i = 0; i < 20; i++)
        {
            System.out.println(result.get(i));
        }
    }
    public static ArrayList<String> doubleValues(ArrayList<String> list) {
        for (int i = 0; i < 19; i++){
            list.add(i, list.get(i));
            i++;
        }
        return list;
    }
}

Внимание, вопрос: почему не проходит тестирование?
  • ,

level06.lesson11.home05

package com.javarush.test.level06.lesson11.home05;

/* Есть новые идеи? Подумаем…
1. В классе Solution создать public статический класс Idea
2. В классе Idea создать метод public String getDescription(), который будет возвращать любой непустой текст
3. В классе Solution создайте статический метод public void printIdea(Idea idea), который будет выводить
на экран описание идеи — это то, что возвращает метод getDescription
*/

public class Solution
{
public static void printIdea(Idea idea)
{
String s = idea.toString();
// Idea.getDescription(s);
System.out.println(Idea.getDescription(s));
}

public static void main(String[] args)
{
printIdea(new Idea());
}

public static class Idea
{

public static String getDescription(String s)
{
if (s.length() > 0)
return s;
else
return null;
}
}
}

Не могу понять в где ошибка((
  • ,

level06.lesson11.home04

package com.javarush.test.level06.lesson11.home04;

/* Мама мыла раму или наоборот
Расставьте минимальное количество static-ов, чтобы код начал работать, и программа успешно завершилась
*/

public class Solution
{
public int step;

public static void main(String[] args) {
method1();
}

public static void method1() {
method2();
}

public static void method2() {
new Solution().method3();
}

public void method3() {
method4();
}

public void method4() {
step++;
for (StackTraceElement element: Thread.currentThread().getStackTrace())
System.out.println(element);
if (step > 1) return;
main(null);
}
}
выдает: программа работала слишком долго и была закрыта
  • ,

level14.lesson04.task02

package com.javarush.test.level14.lesson04.task02;

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

/* Коты
1. Считывать строки(параметры) с консоли, пока пользователь не введет пустую строку(Enter).
2. Каждый параметр соответствует имени кота.
Для каждого параметра:
3. Создать объект cat класса Cat, который равен коту из getCatByKey(String параметр).
4. Вывести на экран cat.toString().
*/

public class Solution
{
public static void main(String[] args) throws Exception
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String catName;
do{
catName = reader.readLine();
if(!catName.equals("")){
Cat cat = CatFactory.getCatByKey(catName);
System.out.println(cat.toString());
}
else{
break;
}
}
while (!catName.equals(""));

}

выдает то, что надо, но проверку не проходит
  • ,

Задача level06.lesson08.task04

Простите конечно, что так часто задаю вопросы, вроде все понятно и примитивно, а все-равно что то тестам не нравится, опять же теоретически программа делает все, что от нее просят, но…

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

public class ConsoleReader
{
    public static void main(String[] args) throws Exception
    {
      
    }

    static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    public static String readString() throws Exception
    {
        String a = reader.readLine();
        return a;

    }

    public static int readInt() throws Exception
    {
        int a = Integer.parseInt(reader.readLine());
        return a;

    }

    public static double readDouble() throws Exception
    {
        double a = Double.parseDouble(reader.readLine());
        return a;

    }

    public static void readLn() throws Exception
    {
        boolean b = true;
        while(b) {


        if  (readString().equals(""))
        {   b = false;
        }
          }
    }
}