Упражнение дня.
Автомат размена купюр.
https://job4j.ru/profile/topics/199/task_code/558/new_task
Публикуйте решение на платформе.
Автомат размена купюр.
https://job4j.ru/profile/topics/199/task_code/558/new_task
Публикуйте решение на платформе.
🔥6👍3❤1
Упражнение дня.
Поиск уникальных слов в списке.
https://job4j.ru/profile/topics/29/task_code/559/new_task
Это задание дают решить устно. Попробуйте придумать алгоритм в голове, а потом реализуйте в коде.
Поиск уникальных слов в списке.
https://job4j.ru/profile/topics/29/task_code/559/new_task
Это задание дают решить устно. Попробуйте придумать алгоритм в голове, а потом реализуйте в коде.
👍4🔥2
Новое видео на канале.
Телеграм Бот | Java API | Рассылка уведомлений по времени
https://www.youtube.com/watch?v=_QuU3MUUwfY
Все научились пользоваться ютуб после 1 сентября 2024 года? ))
Телеграм Бот | Java API | Рассылка уведомлений по времени
https://www.youtube.com/watch?v=_QuU3MUUwfY
Все научились пользоваться ютуб после 1 сентября 2024 года? ))
YouTube
Телеграм Бот | Java API | Рассылка уведомлений по времени
В этом видео мы рассмотрим, как создать Telegram-бота на Java с использованием Telegram API. Покажем, как настроить автоматическую рассылку уведомлений по времени с помощью планировщика задач и интеграции с ботом. Это полезный инструмент для автоматизации…
🔥6
Задание с собеседования.
https://job4j.ru/profile/topics/29/task_code/560/new_task
Оценить сложность алгоритм и затраты на память.
https://job4j.ru/profile/topics/29/task_code/560/new_task
Оценить сложность алгоритм и затраты на память.
🔥4
Часто на собеседованиях дают задачу провести код-ревью.
Сегодняшняя задача — код-ревью.
Компания: ТБанк
Задание: Произвести рефакторинг приведенного ниже кода.
Свои ответы и предложения по улучшению кода пишите в комментариях.
Код для ревью:
Сегодняшняя задача — код-ревью.
Компания: ТБанк
Задание: Произвести рефакторинг приведенного ниже кода.
Свои ответы и предложения по улучшению кода пишите в комментариях.
Код для ревью:
@Controller
public class CartController {
@Resource
private CalculationService calculationService;
@RequestMapping(value = "/", method = RequestMethod.POST)
public String calculate(@RequestParam(value = "products") String products,
@RequestParam(value = "deliveryType") String deliveryType, Model model) {
try {
ObjectMapper mapper = new ObjectMapper();
List<Product> productsList = mapper.readValue(products, new TypeReference<List<Product>>() {});
Cart cart = new Cart(productsList);
calculationService.calculateProductsCost(cart, deliveryType);
calculationService.calculateDeliveryCost(cart, deliveryType);
calculationService.calculateDiscount(cart, deliveryType);
double totals = calculationService.productsCost + calculationService.deliveryCost - calculationService.discount;
String response = "<br/>Стоимость продуктов = " + calculationService.productsCost +
"<br/>Стоимость доставки = " + calculationService.deliveryCost +
"<br/>Скидка = " + calculationService.discount +
"<br/>ИТОГО = " + totals;
model.addAttribute("response", response);
} catch (JsonProcessingException e) {
model.addAttribute("response", "ERROR!");
}
return "index";
}
}
public class Cart implements Serializable {
private List<Product> products;
public class Product {
private double cost;
private int quantity;@Component(value = "calculationService")
public class CalculationService {
double productsCost = 0.0;
double deliveryCost = 0.0;
double discount = 0.0;
private double reactFactor = 1.05;
void calculateProductsCost(Cart cart, String deliveryType) {
if (deliveryType.equals("TOTIME")) {
cart.getProducts().forEach(product -> productsCost += product.getCost() * product.getQuantity());
} else if (deliveryType.equals("REACT")) {
cart.getProducts().forEach(product -> productsCost += product.getCost() * product.getQuantity() * reactFactor);
}
}
void calculateDeliveryCost(Cart cart, String deliveryType) {
if (deliveryType.equals("TOTIME")) {
deliveryCost = cart.getProducts().size() > 10 ? 100.0 : 300.0;
} else if (deliveryType.equals("REACT")) {
deliveryCost = productsCost > 1000.0 ? 0.0 : 500.0 * reactFactor;
}
}
void calculateDiscount(Cart cart, String deliveryType) {
if (deliveryType.equals("TOTIME")) {
discount = productsCost >= 1000.0 && cart.getProducts().size() > 10 ? 100.0 : 0.0;
} else if (deliveryType.equals("REACT")) {
discount = productsCost >= 2000.0 ? 150.0 : 0.0;
}
}
}
🔥3
Новое видео на канале.
Telegram API Java | Отправляем изображение и аудио
https://youtu.be/QklucPZw1Lk?si=SWLMndy3jV_znFXO
Telegram API Java | Отправляем изображение и аудио
https://youtu.be/QklucPZw1Lk?si=SWLMndy3jV_znFXO
YouTube
Telegram API Java | Отправляем изображение и аудио
В этом видео я рассказываю, как отправить изображение и аудио через Telegram API Java.
Курс по Java - https://job4j.ru/
Исходный код проекта - https://github.com/peterarsentev/job4j_boost_mood_bot/tree/RecommendationService
Курс по Java - https://job4j.ru/
Исходный код проекта - https://github.com/peterarsentev/job4j_boost_mood_bot/tree/RecommendationService
🔥5
Ежедневное упражнение.
Поиск общего числа в трех списках.
https://job4j.ru/profile/topics/30/task_code/561/new_task
Оцените сложность и затраты по памяти.
Правильное решение занимает n * log(n), а не n ^ 3.
Поиск общего числа в трех списках.
https://job4j.ru/profile/topics/30/task_code/561/new_task
Оцените сложность и затраты по памяти.
Правильное решение занимает n * log(n), а не n ^ 3.
👍4
📝 Ежедневное упражнение
Сегодняшняя задача — Конвертация римских чисел в арабские! 🏛🔢
Попробуйте написать метод, который преобразует римские числа, такие как X, IV, или MCMXCIV, в их арабские аналоги.
🚀 Готовы попробовать свои силы? Перейдите по ссылке, чтобы начать:
🔗 [Задание на сайте Job4j](https://job4j.ru/profile/topics/29/task_code/562/new_task)
Сегодняшняя задача — Конвертация римских чисел в арабские! 🏛🔢
Попробуйте написать метод, который преобразует римские числа, такие как X, IV, или MCMXCIV, в их арабские аналоги.
🚀 Готовы попробовать свои силы? Перейдите по ссылке, чтобы начать:
🔗 [Задание на сайте Job4j](https://job4j.ru/profile/topics/29/task_code/562/new_task)
👍5
📝 Ежедневное упражнение
Сегодняшняя задача — Найти ближайшего общего предка (LCA) двух узлов в бинарном дереве! 🌳🔍
Попробуйте написать метод, который находит ближайшего общего предка для двух узлов в бинарном дереве, например, для узлов 5 и 1 в дереве, где общий предок — 3.
🚀 Готовы попробовать свои силы? Перейдите по ссылке, чтобы начать:
🔗 [Задание на сайте Job4j](https://job4j.ru/profile/topics/205/task_code/563/new_task)
Сегодняшняя задача — Найти ближайшего общего предка (LCA) двух узлов в бинарном дереве! 🌳🔍
Попробуйте написать метод, который находит ближайшего общего предка для двух узлов в бинарном дереве, например, для узлов 5 и 1 в дереве, где общий предок — 3.
🚀 Готовы попробовать свои силы? Перейдите по ссылке, чтобы начать:
🔗 [Задание на сайте Job4j](https://job4j.ru/profile/topics/205/task_code/563/new_task)
👍1
Осенний курс: Spring Core & AOP
Готовы к глубокому погружению в Spring? В нашем новом курсе по Spring Core и AOP вас ждёт 45 уроков с поддержкой от ментора!
Что вас ждёт в программе:
1. Основы Spring
2. IoC, DI, ApplicationContext
3. AOP и ещё многое другое
4. Работа с Telegram API
Практическая часть включает создание проекта «Бот-Помощник по Настроению», который поможет вам закрепить полученные знания на практике. По завершении курса вас ждёт теоретический экзамен, но время прохождения не ограничено.
Стоимость курса — 4990 рублей.
Присоединяйтесь и начните уже сегодня!
➡️ [Ссылка на курс](https://job4j.ru)
Готовы к глубокому погружению в Spring? В нашем новом курсе по Spring Core и AOP вас ждёт 45 уроков с поддержкой от ментора!
Что вас ждёт в программе:
1. Основы Spring
2. IoC, DI, ApplicationContext
3. AOP и ещё многое другое
4. Работа с Telegram API
Практическая часть включает создание проекта «Бот-Помощник по Настроению», который поможет вам закрепить полученные знания на практике. По завершении курса вас ждёт теоретический экзамен, но время прохождения не ограничено.
Стоимость курса — 4990 рублей.
Присоединяйтесь и начните уже сегодня!
➡️ [Ссылка на курс](https://job4j.ru)
🔥5👍1
