Зачем нужен
Что выведет этот код?
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:
-
-
Вывод:
Вместо двух вложенных списков мы получим один стрим из 3-х символов: "a", "b", "c". Результат
⚡️ Не перепутайте:
Используйте
#java #streamapi #flatmap #basics #интервью #java_interview_tasks
-
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
9%
10
7%
0
14%
узнать ответ
🔥4❤1👍1
🔍 Ответ на задачу про Stream.reduce: Опасность
Первый аргумент
Вычисление идет так:
В нашем случае:
Вывод:
Напечатается 16. Если вы хотите просто сумму — identity должен быть 0. Если произведение — 1.
⚡️ Не перепутайте:
Identity должен быть нейтральным элементом для вашей операции. Для сложения это 0, для умножения 1, для конкатенации строк — пустая строка.
#java #streamapi #reduce #basics #интервью #java_interview_tasks
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
🔥4👏3🤔1
🔍 Ответ на задачу про LocalDate: Ловушка иммутабельности 📅
Классы из пакета
Вывод:
Напечатается 1. Чтобы получить 11, нужно было написать
⚡️ Не перепутайте:
Всегда проверяйте, что вы используете возвращаемое значение методов
#java #datetime #immutable #bug #basics #интервью #java_interview_tasks
Классы из пакета
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👍1
Что произойдет при вызове `new User("")`?
Anonymous Quiz
8%
Ошибка компиляции (в рекордах нельзя писать логику).
15%
Создастся объект с пустым именем.
60%
Выбросится IllegalArgumentException.
17%
Ошибка компиляции (не хватает параметров в конструкторе).
🔥1
Что произойдет при вызове
new User("")?record User(String name) {
public User {
if (name.isEmpty()) throw new IllegalArgumentException();
}
}🔥1
В этой папке собраны каналы про нейросети и цифровую сферу, которые помогают быстрее разобраться в сфере, находить идеи и экономить время на поиске информации.
Дмитрий Губкин — ex-CEO «Продуктовый консалтинг ФРИИ», 500+ компаний.
Сейчас сам строю стартап: без теории, на своей шкуре.
О жизни и книгах🥰
Разборы реальных судебных дел, мошеннических схем и сложных сделок.
Изменения законодательства и практика Росреестра и судов.
Риски при покупке квартир и способы их выявить до сделки.
Полезные материалы для покупателей, риелторов и специалистов рынка.
Консультации и профессиональное обучение риелторов.
https://t.me/ria_realty/19518
https://t.me/rusipoteka/23581
Please open Telegram to view this post
VIEW IN TELEGRAM
💩1🥱1