Лекция

Java Syntax Pro
11 уровень , 6 лекция
Открыта
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Дефрагментация памяти
Рассмотрим аналог памяти компьютера на примере массива строк. Если удалить некоторые элементы, то в массиве появятся так называемые "дыры" - то есть элементы равные null. Метод executeDefragmentation(String[]), принимающий массив строк, выполняет его "дефрагментацию", то есть
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Расставь правильно этажи
Сейчас мы видим, что класс Hotel не компилируется. Нужно расставить поля класса в таком порядке, что бы он скомпилировался.
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Купи 10 батонов
Тебя отправили в магазин за покупками и сказали, что нужно купить батон, а если будут яйца, то взять десять штук. Разберись, почему метод makePurchases независимо от переданных аргументов всегда выводит в консоль "Купил 10 батонов", и исправь его. Метод main не участвует в проверке.
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Ежик и яблоко
Наша задача — накормить ежика. Нужно в методе main создать один объект Apple и один объект Hedgehog, у которого вызвать метод eat и передать нужный аргумент — яблоко.

Лучший способ усвоить теорию — разобраться с ней на практике. Если эта тема показалась тебе сложной, советуем порешать дополнительные задания, которые помогут заполнить пробелы. Ну а если нескольких обязательных для решения задач тебе достаточно — смело переходи к следующим лекциям.

11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Прогноз погоды
У класса City есть два поля - название города и текущая температура воздуха. Также в классе Solution есть метод showWeather: он выводит в консоли информацию о погоде в городе, который передан в качестве аргумента метода. Реализуй метод showWeather, который должен выводить в консоли информацию в таком
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Создание материков
Как известно, на планете Земля есть 6 материков. Создай для каждого материка собственный класс. В каждом классе должно быть поле, которое хранит площадь соответствующего материка. Площадь материка нужно указывать при его создании, и она должна быть неизменяемой. Ты можешь использовать любые числа д
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Геттер и сеттер в деле
В классе Coordinate есть 2 геттера и 2 сеттера, но значения переменным сеттеры не устанавливают. Разберись, почему так происходит и исправь. Метод main не участвует в проверке.

Вот несколько задач на закрепление материала из предыдущих лекций:

11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Текущий год
В классе Solution есть поле currentYear, которое должно инициализироваться значением текущего года(Calendar.getInstance().get(Calendar.YEAR)) при создании нового объекта типа Solution. Тебе нужно найти ошибку и исправить её, чтобы при создании объекта класса Solution поле currentYear правильно иниц
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Собираем компьютер
Попробуем собрать компьютер. У нас есть классы: системный блок, монитор, клавиатура, мышь. В классе компьютер в конструкторе создай объекты классов-составляющих компьютера.
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Автопроизводитель
Давай создадим каталог новых моделей авто у нас на производстве. Для этого нам нужно создать один метод initialize, который будет инициализировать такие поля объекта типа Car: модель, год выпуска, цвет.
Комментарии (428)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Victor Уровень 12
18 января 2025
Про текущий год вообще не понял. Есть такое решение: public class Solution { public static void main(String[] args) { System.out.println(Calendar.getInstance().get(Calendar.YEAR)); } } Для чего нужно было всё остальное писать в class Solution? Кто расскажет, какие есть соображения?
Anonymous #3526086 Уровень 12
15 января 2025
Из всех наиболее сложной показалась Дефрагментация памяти, остальные быстро решились
Tonny Уровень 14
9 января 2025

public class Memory {

    public static void main(String[] args) {
        String[] memory = {"object15", null, null, "object2", null, null, null, "object32", null, "object4"};
        executeDefragmentation(memory);
        System.out.println(Arrays.toString(memory));
    }

    public static void executeDefragmentation(String[] array) {
        int index = 0;
        for (int i = 0; i < array.length; i++) {
            if(array[i]!=null) {
                array[index] = array[i];
                index++;
            }
        }
        while (index< array.length){
            array[index]=null;
            index++;
        }
    }
}
как вам мой вариант дефрагментации?
Tonny Уровень 14
9 января 2025
ребята где еще можно порешать схожие задачки для закрепления этой темы?
Евгений Уровень 13
7 января 2025
два дня решал эти задачки, в общей сложности часов 15 🤪
Soup🍲 Уровень 15
23 декабря 2024
короче все задачи супер легкие ,кроме одной вонючей темы,это реализация equals, очень тяжело дается понять, где не словить нулл поинтер эксепшн
JaCat Уровень 13
22 декабря 2024
Вот он дорогой дофамин, не от листания рилсов, а от собственных успехов )

public static void executeDefragmentation(String[] array) {
        String[] result = new String[array.length];
        for (int i = 0, asc = 0, desc = array.length - 1; i < array.length; i++) {
            if (array[i] != null) {
                result[asc] = array[i];
                asc++;
            } else {
                result[desc] = array[i];
                desc--;
            }
        }
        //ручное копирование данных в исходный массив
        for (int i = 0; i < array.length; i++) {
            array[i] = result[i];
        }
    }
марк Уровень 16
23 декабря 2024
вот то франкенштейн у тебя public static void executeDefragmentation(String[] array) { //напишите тут ваш код for (int i = 0; i < array.length; i++) { for (int j = 1; array[i] == null; j++) { if ((i+j)>= array.length) break; array[i] = array[i+j]; array[i+j] = null; } } }
Yasin Akhmadov Уровень 16
27 декабря 2024
Я решил просто идти в лоб public static void executeDefragmentation(String[] array) { for (int i = 0; i < array.length; i++) { if (array[i] == null) { for (int j = i; j < array.length; j++) { if (array[j] != null) { array[i] = array[j]; array[j] = null; break; } } } } }
Диана Белова Уровень 15
18 декабря 2024
Я думала у меня страница не грузит из-за того что тут одни задачки, эти мысли подкрепляло еще то что задача не компилировалась, а оказывается так и должно быть 😅
Stranger Уровень 13
25 ноября 2024
может такое быть, что задачи в плагине перестали отображаться? и Что делать. даже переустановил плагин . новые задачи не появляются. Как быть, подскажите плиз.
Stranger Уровень 13
25 ноября 2024
Ураааа ! заработало.
Faraway_is_close Уровень 20
21 ноября 2024
Норм дефрагментация?

        int counter = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] == null) {
                continue;
            } else {
                array[counter] = array[i];
                counter++;
            }
        }
        for (int i = counter; i < array.length; i++) {
            array[i] = null;
        }
марк Уровень 16
23 декабря 2024
у меня получилось вот так

public static void executeDefragmentation(String[] array) {
        //напишите тут ваш код
        for (int i = 0; i < array.length; i++) {
            for (int j = 1; array[i] == null; j++) {
                if ((i+j)>= array.length) break;
                array[i] = array[i+j];
                array[i+j] = null;
            }
        }
    }