JavaRush /Курсы /Java Multithreading /Задачи на анонимные иннерклассы

Задачи на анонимные иннерклассы

Java Multithreading
4 уровень , 9 лекция
Открыта

— А вот и новенькие задачи для моего друга:

13
Задача
Java Multithreading, 4 уровень, 9 лекция
Недоступна
Рефакторинг, анонимные классы
Сделайте так, чтобы метод getIterator возвращал анонимный класс. Перенесите логику LocalIterator в анонимный класс. Меняйте только тело метода getIterator.
7
Задача
Java Multithreading, 4 уровень, 9 лекция
Недоступна
Вспомним наследование
Исправить наследование во всех классах, чтобы вывод метода main был CCBAYS.
26
Задача
Java Multithreading, 4 уровень, 9 лекция
Недоступна
Знания - сила!
1. В методе sort написать компаратор для Stock: 1.1. Первичная сортировка по name в алфавитном порядке 1.2. Вторичная сортировка по дате без учета часов, минут, секунд (сверху самые новые), потом по прибыли от положительных к отрицательным ... open 125,64 and last 126,74 - тут прибыль = 126,74-125,6
Комментарии (147)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Private Joker Уровень 36
12 июля 2024
/* Комментарий удален */
Igoreek Уровень 43
7 сентября 2024
гнилой 👅
Private Joker Уровень 36
24 сентября 2024
очко у тебя гнилое
Ra Уровень 51 Student
15 июня 2023
Имхо надо делать хотя бы 1 задачу - факультатив в конце курса на пройденный материал. В которой используются Календарь, анонимные классы, компаратор, работа с файлами, ещё что-то пройденное, но чтобы ни начального кода, ни решения не было. Но могут быть тесты. Это освежит знания в памяти и решение такой задачи должно запомниться сильнее.
Bohdan Уровень 38
9 мая 2023
кто может мне первую задачу обьяснить? ведь тут постоянно в ретуне происходит рекурсия? обьясните плиз! public Iterator getIterator(final String name) { return new Iterator() { { countItems++; System.out.println(name + " item " + countItems); } public Iterator next() { return getIterator(name);
very junior java developer Уровень 51
9 мая 2023
это не рекурсия.....

     public Iterator getIterator(final String name) {
        //тут ты создаёшь анонимный класс реализующий интерфейс Iterator и тут же возвращаешь его объект
        return new Iterator() { 
             {
                countItems++;
                System.out.println(name + " item " + countItems);
            }
           // а этот метод будет иметь возвращенный объект, и его можно будет вызвать у этого объекта уже в другом месте программы (пример ниже).
            public Iterator next() { // 
                return getIterator(name);
           }
      };
   }
.....
//какой-то код
.....
Iterator iterator = solution.getIterator("iterator"); // создали объект анонимного класса реализующего интерфейс
for (int i = 1; i < 5; i++) {
    iterators.add(iterator.next()); // а тут вызывая метод создаём ещё объекты)))
   //можно было бы и так
   iterators.add(solution.getIterator("iterator"));
}
Константин Уровень 51
19 января 2023
До рефакторинга: 13 строк После рефакторинга: 22 Сократил, как мог)
Viktoriya Уровень 43
14 февраля 2024
😂
Юрий Зиненко Уровень 41
23 ноября 2022
Что бы разобраться с исключением стоит прочитать это. Если не помогло, то обратить особое внимание на работу Format[] testFormats.
8 октября 2022
Задачи очень хороши правда, но 1. Непонятно о чем они... 2. Как это связано с темой лекций 3. Что в этих задачах уже написано
Anonymous #3091828 Уровень 51
31 октября 2022
благодаря последней задаче я вспомнил про компаратор и компарабле. Ну и закрепил лекции. Но конечно в последней задаче они условие как обычно слепили, в последнее время даже вникать в такую дичь не хочется, потому что понимаешь, что решить знаешь как, но пока ПОЙМЕШЬ все условия, и ПОНРАВИШЬСЯ валидатору, потратишь много времени.
Юрий Зиненко Уровень 41
23 ноября 2022
По теме лекции Comparator<Stock>() реализован через локальный класс.
Алексей Уровень 40 Expert
17 января 2024
Тогда уж через Анонимный)
И. Ж. Уровень 41
10 сентября 2022
Для разбора что к чему хорошая ссылка https://javarush.com/groups/posts/590-klass-messageformat
И. Ж. Уровень 41
10 сентября 2022
Третья задача сама по себе хороша, чтоб разобрать новое и сделать. Но условие кроме как матом описать, иначе нельзя. Сделал сам как понимал что должно быть, по логике все вроде так. В итоге пока не глянул в ответ, никогда бы не понял что они имели ввиду именно так. Я три раза отсортировал список, а в итоге оказывается имелось ввиду сортировать только в том случае если при первой сортировке значения равны. Понятия первичная сортировка, вторичная бред полный, можно понимать как угодно. С прибылью тоже понимай как хочешь, указано кое как в условии, что такое change и как оно тут согласуется со сравнением самому разобрать малореально. Вывод в общем, главный смысл разобрать задачу до деталей, сделать самому как понял, а если валидатор не принимает, не биться головой не терять время, а потом просто подогнать под ответ и все. По крайней мере несколько попыток сделать чтоб одобрило, если никак, то уже подгонять, разбирать что имелось ввиду. Главное смысл, а то уже дурью заниматься.
Алексей Уровень 40 Expert
17 января 2024
По поводу расчетов согласен,по поводу первичной и вторичной сортировки, думаю норм описали,ведь что еще можно под этим понять как ни это?!К примеру {alexey,35}{alexey,30}, в данном случае если имена равны,то сортиовка будет происходить по возрасту )
JavaCoder Уровень 51
25 мая 2022
В условиях хардовой задачи могли бы и написать, что прибыль сначала нужно брать из change, а если ее нет, то уж тогда высчитывать из last и open. Из кода это неочевидно, потому что change это сдача, а не прибыль.
zxc-17 Уровень 38
5 июня 2022
Да, формулировка неочевидная. Скорей всего, подразумевались цены на акции. open - цена открытия last - последняя, т.е. текущая цена change - изменение, т.е. разница между ними.
Александр Уровень 40
7 июля 2022
сравнивал navar= last-open; change не использовал , 8653
On1k Уровень 45
12 августа 2022
Не у всех объектов типа Stock есть значения last и open.
Алексей Кобзев Уровень 37
2 сентября 2022
В данном контексте Сток это акции, а change - не сдача, а изменение стоимости. В процентах)
Buble76 Уровень 46
13 мая 2022
Третья задача - Всего эту задачу решили 8504 учеников.