В статье подробно рассматривается использование Java Stream: от создания потоков до промежуточных и терминальных операций.
Автор объясняет, как эффективно обрабатывать данные с помощью потоков, приводя примеры кода и практические рекомендации.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4👍3
❤6😁2👍1
Иногда возникает необходимость преобразовать число в значение перечисления (
enum). Давайте рассмотрим как это правильно сделать.Например, есть перечисление:
public enum Season {
WINTER,
SPRING,
SUMMER,
AUTUMN
}Для числа 0 это будет WINTER, для 1 — SPRING и так далее.
Попытка прямого приведения не сработает:
int x = 1;
Season season = (Season) x; // Ошибка компиляции
Правильный способ — использовать метод
values(), который возвращает массив всех значений enum: int x = 1;
Season season = Season.values()[x]; // SPRING
Этот метод извлекает элемент массива по индексу. Однако, если индекс выходит за пределы массива, будет выброшено исключение
ArrayIndexOutOfBoundsException.📌 Важно понимать, что целочисленное значение, используемое для получения значения перечисления, должно иметь смысл в контексте приложения, чтобы код был читаемым и надёжным.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤36👍4
Можно ли создать экземпляр абстрактного класса?
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥1
В статье рассматриваются ключевые улучшения в Spring Security 6.4.1: поддержка современных методов аутентификации, таких как Passkeys и одноразовые токены, а также другие значительные обновления.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17
🔥14🤯8❤5
Вложенные классы в Java помогают структурировать код, но выбор между статическим и нестатическим может поставить в тупик. Когда лучше использовать один, а когда другой? Разберёмся на примерах.
Допустим, у нас есть
Order — класс для работы с заказами. У каждого заказа есть статусы, например, «Создан», «Оплачен», «Отправлен». Статусы удобно оформить как статический вложенный класс:
public class Order {
public static class Status {
public static final String CREATED = "Created";
}
}
// Использование:
String status = Order.Status.CREATED;Почему статический? Потому что Status — это утилитарный класс. Он хранит данные, которые одинаковы для всех заказов, и не связан с конкретным экземпляром Order.
А теперь рассмотрим пример с нестатическим классом. Пусть
Order имеет вложенный класс Item, представляющий товар в заказе: public class Order {
public class Item {
public Item(String name) { /* логика */ }
}
}
// Использование:
Order.Item item = new Order().new Item("Laptop");Здесь Item нужен для описания товаров в конкретном заказе, поэтому он привязан к экземпляру Order.
Подытожим: статический вложенный класс удобен для универсальных данных, а нестатический — для работы с данными конкретного объекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍4
Дано целое число
num. Вы можете поменять в нём местами две цифры один раз, чтобы получить максимальное значение.Нужно вернуть максимальное значение, которое вы можете получить.
Пример 1:
Входные данные:
num = 2736Вывод:
7236Пояснение: Поменяли 2 и 7 местами.
Пример 2:
Входные данные:
num = 9973Вывод:
9973Пояснение: Ничего местами не поменяли.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥5👍4
Статья о том, как добавить кэширование в FeignClient с помощью Caffeine Cache и сделать микросервисы молниеносными.
Простая настройка, минимум кода, максимум пользы — пошагово на примере Java и Spring Boot, чтобы ваши запросы летали, а API не тормозил.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥2
👍4❤2
Stream API, введённое в Java с версии 8, позволяет работать с последовательностями данных в функциональном стиле. Одной из полезных операций является преобразование потока в массив.
Чтобы преобразовать поток в массив, используется метод
toArray(). Если нужно получить массив определённого типа, передаётся ссылка на конструктор массива:Stream<String> stream = Stream.of("a", "b", "c");
String[] array = stream.toArray(String[]::new);Здесь String[]::new создаёт массив строк необходимого размера.Для работы с примитивами, таких как
int, double, существуют специализированные потоки: IntStream, LongStream, DoubleStream. Их метод toArray() возвращает массив соответствующего типа:IntStream intStream = IntStream.range(0, 5);
int[] intArray = intStream.toArray();
Этот код создаёт поток чисел от 0 до 4 и преобразует его в массив int[].Please open Telegram to view this post
VIEW IN TELEGRAM
❤33👍8
Что такое JAXP?
Ответ:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3