❓ Парадокс Comparator’а
Если вам нужно написать Comparator для сортировки объектов по возрастанию, обычно он выглядит так:
➡️ Главная проблема — понять, от чего отнимать, чтобы порядок был правильным. Правильный ответ с первого раза получается редко, и часто мы замечаем ошибку уже после запуска кода.
Теперь это не нужно. Можно использовать ссылки на методы:
🗣 Такой подход упрощает создание компараторов.
Если вам нужно написать Comparator для сортировки объектов по возрастанию, обычно он выглядит так:
public class ByScoreComparator implements Comparator<User> {
@Override
public int compare(User u1, User u2) {
return (int) signum(u2.getAge() - u1.getAge());
}
}
➡️ Главная проблема — понять, от чего отнимать, чтобы порядок был правильным. Правильный ответ с первого раза получается редко, и часто мы замечаем ошибку уже после запуска кода.
Теперь это не нужно. Можно использовать ссылки на методы:
Comparator<User> comparator = Comparator
.comparingDouble(User::getAge)
.thenComparing(User::getName);
List<User> hList = ...;
hList.sort(comparator);
🗣 Такой подход упрощает создание компараторов.
Подборка из 80 важных вопросов по Java, сгруппированных по пяти основным темам: основы и синтаксис, объектно-ориентированное программирование (ООП), обработка исключений и утверждения, основные API, а также параллелизм и многопоточность.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вакансии для Java-разработчиков за последние 14 дней:
✓ Java Developer (Junior). Удалённо (РФ), 100–150 т.р.
✓ Junior Java Developer. Удалённо
✓ QA Automation Engineer (Java). Удалённо, 280–300 т.р.
✓ Java разработчик. Удалённо (РФ), 270–320 т.р.
✓ Java разработчик. Удалённо, 320–360 т.р. гросс
✓ QA full stack (Java). Удалённо, 315–350 т.р. гросс
✓ Full Stack Developer (Java / Javascript). Удалённо (не из РФ), 6000–7500 $ gross
✓ Software Engineer Java. Удалённо, 5000–6500 $ gross
✓ Senior Java Developer. Сербия / гибрид или удалёнка, до 6000 EUR
✓ Java разработчик. Удалённо, от 7500$ gross
#подборка #java
✓ Java Developer (Junior). Удалённо (РФ), 100–150 т.р.
✓ Junior Java Developer. Удалённо
✓ QA Automation Engineer (Java). Удалённо, 280–300 т.р.
✓ Java разработчик. Удалённо (РФ), 270–320 т.р.
✓ Java разработчик. Удалённо, 320–360 т.р. гросс
✓ QA full stack (Java). Удалённо, 315–350 т.р. гросс
✓ Full Stack Developer (Java / Javascript). Удалённо (не из РФ), 6000–7500 $ gross
✓ Software Engineer Java. Удалённо, 5000–6500 $ gross
✓ Senior Java Developer. Сербия / гибрид или удалёнка, до 6000 EUR
✓ Java разработчик. Удалённо, от 7500$ gross
#подборка #java
Метод
main()
, вероятно, станет первым методом, с которым вы познакомитесь, начиная изучать Java, так как он является обязательной частью любой самостоятельной программы на этом языке. В этой статье разбираемся с main()
на примерах.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Pattern Matching для instanceof
В Java 14 был представлен Pattern Matching для оператора instanceof. Эта возможность упрощает и делает более читабельным код, который проверяет типы объектов и затем приводит их к этим типам.
✔️ Используйте эту фишку для написания более чистого и читаемого кода, избегая лишних явных приведений типов
В Java 14 был представлен Pattern Matching для оператора instanceof. Эта возможность упрощает и делает более читабельным код, который проверяет типы объектов и затем приводит их к этим типам.
✔️ Используйте эту фишку для написания более чистого и читаемого кода, избегая лишних явных приведений типов
Please open Telegram to view this post
VIEW IN TELEGRAM
- На javarocks.ru:
- Другие платформы:
Хорошего дня!
#дайджест
Please open Telegram to view this post
VIEW IN TELEGRAM
➡️ Строковые шаблоны (Preview)
Строковые шаблоны (string templates) — новая функция в режиме preview, упрощающая создание строк с вычисляемыми значениями.
🗣 Ранее используемая в Java конкатенация приводила к сложному коду, тогда как строковая интерполяция в других языках сокращает код, но увеличивает риски безопасности.
ℹ️ Шаблонные выражения сочетают лаконичность интерполяции и высокую безопасность.
Выражение использует обработчик
Строковые шаблоны (string templates) — новая функция в режиме preview, упрощающая создание строк с вычисляемыми значениями.
🗣 Ранее используемая в Java конкатенация приводила к сложному коду, тогда как строковая интерполяция в других языках сокращает код, но увеличивает риски безопасности.
ℹ️ Шаблонные выражения сочетают лаконичность интерполяции и высокую безопасность.
String name = "Joan";
String info = STR."My name is \{name}";
assert info.equals("My name is Joan"); // true
Выражение использует обработчик
STR
и встроенное выражение {name}
, которое может включать строки, арифметику, методы и поля. Обработчики выполняются динамически и обеспечивают безопасность кода. Шаблоны не работают без обработчика, отвечающего за интерполяцию и валидацию.Конкатенация строк — это процесс объединения двух или более строк в одну новую строку с последующим возвратом результата. Такая операция часто используется при формировании сообщений, построении SQL-запросов, логировании и других задачах, где важно собрать текст из разных частей.
В Java есть два основных способа выполнить конкатенацию. Давайте их рассмотрим.
Please open Telegram to view this post
VIEW IN TELEGRAM
Прыжки по массиву
Дан целочисленный массив nums. Изначально вы располагаетесь на первом индексе массива, и каждый элемент массива представляет собой максимальную длину вашего прыжка на этой позиции.
Возвращается true, если вы можете достичь последнего индекса, или false в противном случае.
Алгоритм использует максимальную длину прыжка в каждой позиции, чтобы определить самый дальний индекс, до которого он может добраться. Постоянно обновляя самый дальний индекс, он проверяет, возможно ли достичь последнего индекса, и возвращает соответствующий результат (True или False).
- Если текущий индекс i больше, чем farthest, это означает, что мы не можем продолжить, поэтому мы возвращаем False.
- Если farthest больше или равен последнему индексу, значит, мы достигли конца массива и возвращаем True.
- Если мы завершаем цикл, не достигнув конца массива, мы возвращаем False.
Дан целочисленный массив nums. Изначально вы располагаетесь на первом индексе массива, и каждый элемент массива представляет собой максимальную длину вашего прыжка на этой позиции.
Возвращается true, если вы можете достичь последнего индекса, или false в противном случае.
Алгоритм использует максимальную длину прыжка в каждой позиции, чтобы определить самый дальний индекс, до которого он может добраться. Постоянно обновляя самый дальний индекс, он проверяет, возможно ли достичь последнего индекса, и возвращает соответствующий результат (True или False).
- Если текущий индекс i больше, чем farthest, это означает, что мы не можем продолжить, поэтому мы возвращаем False.
- Если farthest больше или равен последнему индексу, значит, мы достигли конца массива и возвращаем True.
- Если мы завершаем цикл, не достигнув конца массива, мы возвращаем False.
Полностью исключить ошибки программирования невозможно — разработчики способны создавать самые непредсказуемые сценарии. Поэтому в языке должен быть предусмотрен механизм для работы с ошибками. Давайте разберёмся, как он устроен в Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Хорошего дня!
#дайджест
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка вопросов (с ответами, конечно), которые вам вполне могут задать на собеседовании на позицию, связанную с написанием кода на Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
DJL — это удобная библиотека Java для Machine Learning.
Библиотека предоставляет целый набор разных моделей, можно легко подобрать нужную модель по заданным параметрам
Конечно же есть возможность создать свою модель и сохранить её для дальнейшего использования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Хотите интегрировать Яндекс.Диск в свой Java-проект? В этом видео я покажу, как быстро и просто работать с API Яндекс.Диска, получить OAuth токен, а также загружать файлы в облачное хранилище. Мы разберем ключевые моменты, сравним API с аналогами и напишем полноценный Java-код для работы с Yandex Disk.
Please open Telegram to view this post
VIEW IN TELEGRAM
Абстракция – это принцип ООП, который заключается в том, что при проектировании классов и создании объектов мы должны определять только ключевые свойства сущности и отбрасывать второстепенные.
Абстрактный класс — это, по сути, “заготовка” для группы будущих классов. Саму заготовку нельзя использовать напрямую — она слишком “сырая”. Однако она описывает базовое состояние и общее поведение, которые будут унаследованы дочерними классами.
Please open Telegram to view this post
VIEW IN TELEGRAM