JavaRush
Акція
Університет
Java FullStack
Python FullStack
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Методи groupingBy та partitioningBy (Collectors)

    JAVA 25 SELF
    31 рівень, 2 лекція
    У цій лекції ви навчитеся групувати дані у потоках за допомогою колекторів Collectors.groupingBy і Collectors.partitioningBy: прості та вкладені групування, поділ за булевою ознакою, вибір між ними, обробка результату та корисні поради. На практичних прикладах із рядками, числами й об’єктами побачите, як із потоку ( Stream API) отримати Map потрібної структури й як працювати з функціями‑ознаками ( Function) та предикатами ( Predicate). Наприкінці — розбір типових помилок.
    Відкрита
  • Поглиблена агрегація: вкладені групування

    JAVA 25 SELF
    31 рівень, 3 лекція
    Практичне занурення у вкладені групування зі Stream-ами та колекторами: як комбінувати Collectors.groupingBy з агрегаторами ( maxBy, averagingInt, counting), трансформувати дані за допомогою mapping, ділити на підмножини через partitioningBy та коректно читати вкладені Map-структури. Багато наочних прикладів, візуалізація структури результатів і розбір типових помилок.
    Відкрита
  • Просунуті колектори

    JAVA 25 SELF
    31 рівень, 4 лекція
    У лекції розглядаємо просунуті прийоми роботи з колекторами Stream API: вкладені downstream‑колектори для groupingBy/ partitioningBy, перетворення з mapping, фільтрацію з filtering, «розгортання» з flatMapping, одночасну агрегацію з teeing (Java 12+), а також «заморожування» колекцій через toUnmodifiableList/Set/Map і collectingAndThen. Покажемо практичні конвеєри та типові помилки.
    Відкрита
  • Методи flatMap і mapMulti

    JAVA 25 SELF
    32 рівень, 0 лекція
    У цій лекції розберемося, чим відрізняються перетворення даних через map, «сплющувальне» перетворення через flatMap і ефективніший аналог у Java 16+ — mapMulti. На прикладах побачимо, як розпаковувати вкладені колекції до вигляду Stream<String> замість Stream<Stream<String>>, як працювати з Optional за допомогою stream(), а також коли надавати перевагу mapMulti заради продуктивності без створення проміжних потоків.
    Відкрита
  • Методи join, concat: обʼєднання потоків

    JAVA 25 SELF
    32 рівень, 1 лекція
    У цій лекції розглянемо способи обʼєднання даних у Stream API: статичний метод Stream.concat для двох потоків, комбінацію Stream.of + flatMap для довільної кількості потоків, а також колектор Collectors.joining для склеювання елементів в один рядок. Поговоримо про ледачість, одноразовість потоків, збереження порядку й типові помилки (повторне використання потоку, нескінченні потоки, joining для нерядкових елементів) — з наочними прикладами.
    Відкрита
  • Операції union, intersection, difference

    JAVA 25 SELF
    32 рівень, 2 лекція
    У цій лекції розглянемо типові операції над множинами в Java: обʼєднання ( union), перетин ( intersection) і різницю ( difference) на основі інтерфейсу Set та Stream API. Наведено практичні приклади зі Stream.concat, Stream.of + flatMap, альтернативи через retainAll/ removeAll, а також важливі нюанси щодо equals/ hashCode, продуктивності та типових помилок.
    Відкрита
  • Zip-ування (zip), генерація потоків (iterate, generate)

    JAVA 25 SELF
    32 рівень, 3 лекція
    У лекції розберемося, що таке zip і чому його немає у стандартному Stream API (до Java 22), навчимося «зшивати» колекції через індекси за допомогою IntStream.range, а також створювати потоки «на льоту» за допомогою Stream.iterate і Stream.generate. Приклади, візуалізації та типові помилки допоможуть упевнено застосовувати генерацію та zip-ування у задачах.
    Відкрита
  • Розбір типових помилок під час роботи зі Stream API

    JAVA 25 SELF
    32 рівень, 4 лекція
    Детальний гід щодо частих помилок під час роботи зі Stream API у Java: одноразовість потоку та повторні виклики термінальних операцій ( collect(), forEach(), count()), зміна колекції під час обходу, забутий limit() у нескінченних потоках ( iterate, generate), обробка null та робота з Optional через flatMap(Optional::stream), збереження порядку з forEachOrdered(), ефективні операції над множинами за допомогою Set, коректне закриття ресурсів ( Files.lines + try-with-resources), обережність із parallelStream() та принцип «поки немає термінального оператора — нічого не виконується». Усі проблеми супроводжуються зрозумілими прикладами та виправленнями.
    Відкрита
  • Примітивні стріми та вартість упакування (boxing)

    JAVA 25 SELF
    33 рівень, 0 лекція
    У лекції розберемо, чому звичайні стріми колекцій чисел ( Stream<Integer>, Stream<Double>) можуть бути неефективними через упакування/розпакування (boxing/unboxing), і як примітивні стріми — IntStream, LongStream, DoubleStream — допомагають цього уникнути. Розглянемо перетворення mapToInt/ boxed(), агрегаційні операції ( sum(), average(), summaryStatistics()), безпечні результати з OptionalInt/ OptionalDouble, а також де оптимізація справді дає приріст і як вимірювати ефект із JMH.
    Відкрита
  • Ледача обробка (lazy evaluation) у Stream API

    JAVA 25 SELF
    33 рівень, 1 лекція
    У лекції розглянемо, як працює ледача обробка у Stream API: чим відрізняються проміжні та термінальні операції, чому обчислення починаються лише після виклику термінальної операції, а також які переваги дають поелементна обробка та «короткі обчислення». Покажемо ланцюжки з filter, map, peek, findFirst, forEach, візуалізуємо проходження елементів і розберемо типові помилки й поради щодо ефективного порядку операцій.
    Відкрита
  • Незмінні колекції: Collections.unmodifiable

    JAVA 25 SELF
    33 рівень, 2 лекція
    У цій лекції розглянемо, як захистити дані за допомогою незмінних обгорток Collections.unmodifiableList, unmodifiableSet, unmodifiableMap, чим відрізняється «поверхнева» незмінність від «глибокої», коли й навіщо повертати обгортки з методів, а також сучасні альтернативи List.of/ Set.of/ Map.of. Поговоримо про типові помилки (наприклад, очікування глибокої незмінності або робота з null) та про те, чому спроби модифікації завершуються винятком UnsupportedOperationException.
    Відкрита
  • Spliterator і паралельні стріми

    JAVA 25 SELF
    33 рівень, 3 лекція
    У лекції розглядаємо, що таке Spliterator і як він дає змогу не лише перебирати елементи, а й ділити джерело даних на частини за допомогою trySplit(). Пояснюємо, як на цій основі працюють паралельні стріми через parallelStream() і спільний пул ForkJoinPool. Показуємо ключові методи ( tryAdvance, estimateSize, characteristics), типові характеристики ( ORDERED, SIZED, CONCURRENT тощо), практичні приклади, схема Mermaid і поширені помилки під час використання паралельних стрімів.
    Відкрита
  • 1
  • ...
  • 14
  • 15
  • 16
  • 17
  • 18
  • ...
  • 57
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush