• ,

level25.lesson02.home01

public enum Column implements Columnable
{
    Customer("Customer"),
    BankName("Bank Name"),
    AccountNumber("Account Number"),
    Amount("Available Amount");

    private String columnName;

    private static int[] realOrder;

    private Column(String columnName) {
        this.columnName = columnName;
    }

    /**
     * Задает новый порядок отображения колонок, который хранится в массиве realOrder.
     * realOrder[индекс в энуме] = порядок отображения; -1, если колонка не отображается.
     *
     * @param newOrder новая последовательность колонок, в которой они будут отображаться в таблице
     * @throws IllegalArgumentException при дубликате колонки
     */
    public static void configureColumns(Column... newOrder) {
        realOrder = new int[values().length];
        for (Column column : values()) {
            realOrder[column.ordinal()] = -1;
            boolean isFound = false;

            for (int i = 0; i < newOrder.length; i++) {
                if (column == newOrder[i]) {
                    if (isFound) {
                        throw new IllegalArgumentException("Column '" + column.columnName + "' is already configured.");
                    }
                    realOrder[column.ordinal()] = i;
                    isFound = true;
                }
            }
        }
    }

    /**
     * Вычисляет и возвращает список отображаемых колонок в сконфигурированом порядке (см. метод configureColumns)
     * Используется поле realOrder.
     *
     * @return список колонок
     */
    public static List<Column> getVisibleColumns() {
        List<Column> result = new LinkedList<>();
        for (int i = 0; i < realOrder.length; i++) {
            if (realOrder[i] != -1)
                result.add(Column.values()[realOrder[i]]);
        }

        return result;
    }

    @Override
    public String getColumnName()
    {
        return columnName;
    }

    @Override
    public boolean isShown()
    {
        return realOrder[this.ordinal()] != -1;
    }

    @Override
    public void hide()
    {
         int index = this.ordinal();
         for (int i = 0; i < realOrder.length; i++) {
             if (realOrder[i] == index)
                 realOrder[i] = -1;
         }
    }
}


Вывод после Column.AccountNumber.hide();:

Account Number
Bank Name
Customer
— Bank Name
Customer
  • ,

Не принимает, хотя работает все правильно показывает.

правильно ли то что я испрользовал массив который буду проходить только в следующем уровне

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

import java.util.ArrayList;

/* Статические коты
1. В классе Cat добавь public статическую переменную cats (ArrayList).
2. Пусть при каждом создании кота (нового объекта Cat) в переменную cats добавляется этот новый кот. Создать 10 объектов Cat.
3. Метод printCats должен выводить всех котов на экран. Нужно использовать переменную cats.
*/

public class Cat

{
public Cat()
{
Cats.add(this);

}

//add your code here — добавь свой код тут

public static ArrayListCats = new ArrayList();

public static void main(String[] args)
{
//Create 10 Cat-s here — создай 10 котов тут
for(int i = 0; i < 10; i++)
new Cat();
printCats();
}

public static void printCats() {

//add your step 3 code here — добавь свой код для пункта 3 тут

for(int i = 0; i < 10; i++)
{
System.out.println(Cats.get(i));

}

}
}

level13.lesson04.task03


import java.awt.*;

/* Интерфейс Animal
1. Унаследовать Fox от интерфейса Animal.
2. Поменяй код так, чтобы в классе Fox был только один метод - getName.
3. Методы удалять нельзя!
*/

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

    public interface Animal
    {
        Color getColor();
    }

    static abstract class Dog implements Animal {
        public Color getColor()
        {
            return null;
        }
    }

    public static class Fox extends Dog implements Animal
    {
        public String getName()
        {
            return "Fox";
        }
    }
}

Правильно ли я понял задание? Вроде один метод в теле. Вообще, конечно существует 2 метода, первый реализован в классе Dog и наследуется.

level22.lesson05.task02

>Метод getPartOfString должен возвращать подстроку между первой и второй табуляцией.
На некорректные данные бросить исключение TooShortStringException.
Класс TooShortStringException не менять.



строка между табуляциями возвращается, но с приемом проблемы
1. что подразумевается под некорректными данными?
попробовал и проверять строку на нулевую длину и считать количество '\t' если меньше двух

проверка строки на null также не помогла

2. бросать — через сигнатуру метода, или выводить стектрейс внутри?
  • ,

level16.lesson10.task02

package com.javarush.test.level16.lesson10.task02;

/* Отсчет на гонках
1. Разберись, что делает программа.
2. Реализуй логику метода run так, чтобы каждую секунду через пробел
выдавался отсчет начиная с countSeconds до 1, а потом слово [Марш!] (см примеры).
3. Если нить работает 3.5 секунды и более, прерви ее методом interrupt и внутри нити выведи в консоль слово [Прервано!].
Пример для countSeconds=4 : [4 3 2 1 Прервано!]
4. Если нить работает менее 3.5 секунд, она должна завершиться сама.
Пример для countSeconds=3 : [3 2 1 Марш!]
PS: метод sleep выбрасывает InterruptedException.
*/
........
  • ,

level09.lesson06.task01

Почему-то не проходит тестирование. Может я не так понял задание?

Вот код:

package com.javarush.test.level09.lesson06.task01;

/* Исключение при работе с числами
Перехватить исключение (и вывести его на экран), указав его тип, возникающее при выполнении кода:
int a = 42 / 0;
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        try {


         int a = 42/0;

        }

        catch (ArithmeticException e) {

           String s = e.getMessage();

           System.out.println(s);
        }



    }
}