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

Лекції

  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Моє навчання
  • Курси
  • Університет
  • Карта квестів
  • Лекції
  • Примітивні стріми та вартість упакування (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 і поширені помилки під час використання паралельних стрімів.
    Відкрита
  • Власні Collector і Spliterator

    JAVA 25 SELF
    33 рівень, 4 лекція
    У цій лекції розберемо, як писати власні колектори для Stream API через Collector і коли це справді виправдано, а також як реалізувати власний Spliterator для ефективного послідовного та паралельного обходу даних. Покроково розглянемо складові колектора ( supplier, accumulator, combiner, finisher, characteristics), приклади для мульти‑мапи і топ‑N, стратегії trySplit, а також коректне задання характеристик ( ORDERED, SIZED, SUBSIZED тощо).
    Відкрита
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush