Java Interview Tasks
4.83K subscribers
212 photos
1 video
1 file
140 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov
Download Telegram
Гарантирует ли `findAny()` возвращение самого первого элемента стрима?
Anonymous Quiz
10%
да
86%
нет
3%
узнать ответ
2%
что такое стрим?
👍3👌2🔥1
🔍 Ответ на задачу про Stream.findFirst vs findAny: В чём разница? 🔍
- findFirst() жестко привязан к порядку следования (encounter order). В параллельном стриме он потратит время на то, чтобы убедиться, что вернул именно первый элемент.
- findAny() позволяет среде выполнения выбрать любой подходящий элемент. В параллельных стримах это работает гораздо быстрее, так как не нужно координировать потоки для соблюдения порядка.

Вывод:
В параллельном стриме findAny() может вернуть любой элемент, подходящий под условие. Если порядок не важен — используйте его для скорости.

⚡️ Не перепутайте:
В последовательном (sequential) стриме findAny() чаще всего тоже будет возвращать первый элемент, но спецификация этого не гарантирует.

#java #streamapi #parallel #performance #интервью #java_interview_tasks
👍6🔥1
⚡️ Здравствуйте, Дорогие подписчики!

Представляем вашему вниманию подборку полезных каналов в сфере «Образование и наука» 🔥
Будем очень рады, если вы найдете для себя что-нибудь полезное.

❗️Ссылка на папку:

https://t.me/addlist/X7qi5eXa3Xc1Nzgy
👍8✍3💩3🙏1
Зачем нужен `flatMap`, если есть обычный `map`?
Что выведет этот код?
Anonymous Quiz
14%
2
82%
3
2%
1
2%
Ошибка компиляции.
🔥4👍1🤔1
Зачем нужен flatMap, если есть обычный map?
Что выведет этот код?
List<List<String>> list = Arrays.asList(
Arrays.asList("a"),
Arrays.asList("b", "c")
);
System.out.println(list.stream()
.flatMap(Collection::stream)
.count());
👍4🔥1🤔1
🔍 Ответ на задачу про Stream.flatMap:
- map() превращает каждый элемент в другой элемент (1 -> 1). Если применить его здесь, мы получим стрим стримов: Stream<Stream<String>>.
- flatMap() превращает каждый элемент в стрим, а затем "склеивает" все эти стримы в один плоский Stream<String>.

Вывод:
Вместо двух вложенных списков мы получим один стрим из 3-х символов: "a", "b", "c". Результат count() — 3.

⚡️ Не перепутайте:
Используйте flatMap, когда ваш объект содержит коллекцию или Optional, и вы хотите работать с их содержимым напрямую.

#java #streamapi #flatmap #basics #интервью #java_interview_tasks
🔥2👌1
Что выведет код?
int sum = Stream.of(1, 2, 3)
.reduce(10, (a, b) -> a + b);
System.out.println(sum);
🔥4👍1
Что выведет код для пустого стрима и стрима с числами?
Anonymous Quiz
9%
6
61%
16
8%
10
7%
0
14%
узнать ответ
🔥4❤1👍1
🔍 Ответ на задачу про Stream.reduce: Опасность identity 🚩
Первый аргумент reduce — это identity. Это значение, которое возвращается, если стрим пуст, и которое используется как начальное при вычислении.
Вычисление идет так: identity + element1 + element2...
В нашем случае: 10 + 1 + 2 + 3 = 16.

Вывод:
Напечатается 16. Если вы хотите просто сумму — identity должен быть 0. Если произведение — 1.

⚡️ Не перепутайте:
Identity должен быть нейтральным элементом для вашей операции. Для сложения это 0, для умножения 1, для конкатенации строк — пустая строка.

#java #streamapi #reduce #basics #интервью #java_interview_tasks
👍5❤1👌1
Что выведет этот код?
LocalDate date = LocalDate.of(2024, 1, 1);
date.plusDays(10);
System.out.println(date.getDayOfMonth());
👏4❤1🔥1
Что выведет этот код?
Anonymous Quiz
25%
1
11%
10
56%
11
3%
111
5%
узнать ответ
🔥4👏3🤔1
🔍 Ответ на задачу про LocalDate: Ловушка иммутабельности 📅
Классы из пакета java.time (LocalDate, LocalTime, etc.) — immutable (неизменяемые), как и String. Любой метод, который якобы "меняет" объект, на самом деле возвращает новый объект с измененным состоянием. Исходный объект date остается прежним.

Вывод:
Напечатается 1. Чтобы получить 11, нужно было написать date = date.plusDays(10).

⚡️ Не перепутайте:
Всегда проверяйте, что вы используете возвращаемое значение методов java.time. Это одна из самых частых ошибок при переходе со старого Calendar.

#java #datetime #immutable #bug #basics #интервью #java_interview_tasks
🔥6👏2👍1