JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Контракты equals и hashCode

    JAVA 25 SELF
    29 уровень,0 лекция
    В этой лекции разберём, как правильно определять равенство объектов в Java: чем отличается сравнение ссылок оператором == от сравнения содержимого методом equals, почему контракт equals/ hashCode критичен для коллекций вроде HashSet и HashMap, и как связать это с compareTo из Comparable. Пошаговые примеры, best practices и разбор типичных ошибок помогут избежать ловушек при работе с хеш-таблицами и сортируемыми коллекциями.
    Открыта
  • Класс Objects: методы equals, hashCode, hash

    JAVA 25 SELF
    29 уровень,1 лекция
    В этой лекции разбираем «швейцарский нож» java.util.Objects: как безопасно сравнивать с Objects.equals, лаконично считать хеши с Objects.hash, делегировать сравнение через Objects.compare, гарантировать не- null значениями с Objects.requireNonNull, а также применять Objects.isNull/ Objects.nonNull в потоках. Покажем корректную реализацию equals/ hashCode/ compareTo, разберём практические кейсы и типичные ошибки при работе с HashMap/ HashSet.
    Открыта
  • Интерфейс Comparable: реализация, compareTo

    JAVA 25 SELF
    29 уровень,2 лекция
    В этой лекции разбираем естественный порядок объектов в Java через интерфейс Comparable и метод compareTo: зачем он нужен, как правильно реализовать, как работает сортировка коллекций ( Collections.sort и List.sort), сравнение по нескольким полям, обработка null-значений и согласованность с equals/ hashCode. Рассмотрим лучшие практики, частые ошибки и практические примеры с классом Person.
    Открыта
  • Интерфейс Comparator: создание, использование

    JAVA 25 SELF
    29 уровень,3 лекция
    В лекции разбираем, когда использовать Comparator вместо Comparable, синтаксис и контракт метода compare(T o1, T o2), практику сортировки списков через Collections.sort и List.sort, создание компараторов как отдельными классами, так и через анонимные классы и лямбда-выражения. Рассмотрим многоуровневую сортировку, работу с null-значениями, поиск через Collections.binarySearch, инверсию порядка с reversed(), а также best practices и типичные ошибки (например, почему лучше использовать Integer.compare, а не a - b).
    Открыта
  • Поиск и сортировка элементов в коллекциях Java

    JAVA 25 SELF
    29 уровень,4 лекция
    В этой лекции разберём практические приёмы работы с коллекциями: поиск элементов с помощью методов contains, indexOf, lastIndexOf, поиск по условию через цикл for и оператор break, нахождение минимума и максимума с классом Collections. Потренируемся сортировать списки методами Collections.sort и List.sort, использовать Comparator, отсортируем пары из Map, а также объекты по полю. В конце обсудим типичные ошибки: неизменяемые списки из List.of, попытки сортировать Set/ Map и некорректные компараторы.
    Открыта
  • Введение в Stream API: зачем нужны потоки

    JAVA 25 SELF
    30 уровень,0 лекция
    В этой лекции разбираем, почему императивный подход к обработке коллекций быстро обрастает бойлерплейтом, и как Stream API переводит код в декларативный стиль: цепочки операций filter, map, collect, простая композиция, меньше ошибок и лёгкий параллелизм через parallelStream(). Покажем области применения, историю появления и типичные ошибки, которых стоит избегать.
    Открыта
  • Базовые операции Stream API: map, filter, collect

    JAVA 25 SELF
    30 уровень,1 лекция
    Пошаговое знакомство с базовыми операциями Stream API: как получить поток из коллекции и массива ( stream(), Arrays.stream, Stream.of), чем отличаются промежуточные операции ( filter, map, distinct) от терминальных ( collect, forEach, count), и как собирать результаты с помощью Collectors ( toList, toSet, joining). Практические примеры, мини‑задачи и раздел с типичными ошибками помогут быстро освоить конвейерную обработку данных.
    Открыта
  • Подмножества Stream API: distinct, limit, skip

    JAVA 25 SELF
    30 уровень,2 лекция
    В этой лекции разбираем три ключевые операции Stream API для работы с подмножествами данных: distinct (удаление дубликатов), limit (ограничение количества элементов) и skip (пропуск первых элементов). Вы увидите, как они работают на коллекциях строк и объектов, как влияет реализация equals/ hashCode на результат distinct, как комбинировать операции для пагинации и отбора топ-N, и какие ошибки встречаются чаще всего.
    Открыта
  • Методы forEach, peek: побочные действия

    JAVA 25 SELF
    30 уровень,3 лекция
    В лекции разбираем операции потоков для побочных действий: терминальную forEach и промежуточную peek. Поймём, когда и зачем их использовать, чем они отличаются, почему после forEach поток «закрывается», а peek не меняет данные и выполняется только при наличии терминальной операции. Покажем практические примеры, разберём неочевидные моменты и типичные ошибки (включая ConcurrentModificationException и неправильную замену collect на forEach).
    Открыта
  • Преобразование коллекций через Stream

    JAVA 25 SELF
    30 уровень,4 лекция
    Практическое руководство по преобразованию коллекций с помощью Stream API: преобразование List ↔ Set, сборка отображений через Collectors.toMap() (включая обработку дубликатов), объединение в строку с Collectors.joining(), разбор терминальных и промежуточных операций ( forEach, collect, count, anyMatch и др.). Внутри — понятные примеры, пояснения и типичные ошибки.
    Открыта
  • Методы sum, count, average, max, min в Stream API

    JAVA 25 SELF
    31 уровень,0 лекция
    В этой лекции разбираем агрегирующие операции Stream API: как считать количество через count(), суммы и средние с примитивными стримами ( IntStream, LongStream, DoubleStream) и методами sum(), average(), а также находить экстремумы через min()/ max(). Отдельно обсудим работу с контейнерами Optional, OptionalInt, OptionalLong, OptionalDouble и правильные способы извлечения значений: orElse(...), ifPresent(...), orElseThrow(). Научимся использовать коллекторами Collectors.summingInt, Collectors.averagingInt, Collectors.maxBy/ minBy и сочетать их с groupingBy. В конце — разбор типичных ошибок и нюансов.
    Открыта
  • Методы reduce и collect: агрегирование данных

    JAVA 25 SELF
    31 уровень,1 лекция
    Разбираем терминальные операции потоков: универсальную свёртку reduce() и мощный сборщик collect(). Поймём сигнатуры с identity, accumulator и combiner, научимся собирать данные готовыми коллекторами из Collectors ( toList(), toMap(), joining(), groupingBy()) и посмотрим, где стоит предпочесть collect() вместо reduce(). Отдельно обсудим работу с Optional, обработку дубликатов в toMap() и нюансы параллельных потоков.
    Открыта
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...
  • 57
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2025 JavaRush
MastercardVisa
"Программистами не рождаются" © 2025 JavaRush