CodeGym
Promocja
Nauka
Kursy
Zadania
Ankiety & quizy
Gry
Pomoc
Harmonogram
Społeczność
Użytkownicy
Forum
Czat
Artykuły
Historie sukcesu
Aktywność
Opinie
Subskrypcje
Jasny motyw

Lekcje

  • Opinie
  • O nas
Start
Rozpocznij naukę
Rozpocznij naukę teraz
  • Mój postęp
  • Kursy
  • Mapa Questów
  • Lekcje
  • Kontrakty equals i hashCode

    JAVA 25 SELF
    Poziom 29,Lekcja 0
    W tej lekcji omówimy, jak prawidłowo określać równość obiektów w Javie: czym różni się porównywanie referencji operatorem == od porównywania zawartości metodą equals, dlaczego kontrakt equals/ hashCode jest kluczowy dla kolekcji takich jak HashSet i HashMap oraz jak powiązać to z compareTo z Comparable. Przykłady krok po kroku, best practices i omówienie typowych błędów pomogą uniknąć pułapek przy pracy z tablicami haszującymi i kolekcjami sortowanymi.
    Dostępne
  • Klasa Objects: metody equals, hashCode, hash

    JAVA 25 SELF
    Poziom 29,Lekcja 1
    W tej lekcji omawiamy „szwajcarski scyzoryk” java.util.Objects: jak bezpiecznie porównywać za pomocą Objects.equals, zwięźle liczyć hashe z Objects.hash, delegować porównanie przez Objects.compare, gwarantować wartości nie- null z Objects.requireNonNull, a także stosować Objects.isNull/ Objects.nonNull w strumieniach. Pokażemy poprawną implementację equals/ hashCode/ compareTo, omówimy praktyczne przypadki i typowe błędy przy pracy z HashMap/ HashSet.
    Dostępne
  • Interfejs Comparable: implementacja, compareTo

    JAVA 25 SELF
    Poziom 29,Lekcja 2
    W tej lekcji omawiamy naturalny porządek obiektów w Javie poprzez interfejs Comparable i metodę compareTo: po co jest potrzebna, jak ją poprawnie zaimplementować, jak działa sortowanie kolekcji ( Collections.sort i List.sort), porównywanie po wielu polach, obsługa wartości null oraz spójność z equals/ hashCode. Przeanalizujemy najlepsze praktyki, częste błędy oraz praktyczne przykłady z klasą Person.
    Dostępne
  • Interfejs Comparator: tworzenie i użycie

    JAVA 25 SELF
    Poziom 29,Lekcja 3
    W tym wykładzie omawiamy, kiedy używać Comparator zamiast Comparable, składnię i kontrakt metody compare(T o1, T o2), praktykę sortowania list za pomocą Collections.sort i List.sort, tworzenie komparatorów zarówno jako osobnych klas, jak i przy użyciu klas anonimowych oraz wyrażeń lambda. Przyjrzymy się sortowaniu wielopoziomowemu, pracy z wartościami null, wyszukiwaniu przez Collections.binarySearch, odwracaniu porządku za pomocą reversed(), a także dobrym praktykom i typowym błędom (np. dlaczego lepiej używać Integer.compare, a nie a - b).
    Dostępne
  • Wyszukiwanie i sortowanie elementów w kolekcjach Java

    JAVA 25 SELF
    Poziom 29,Lekcja 4
    W tym wykładzie omówimy praktyczne techniki pracy z kolekcjami: wyszukiwanie elementów za pomocą metod contains, indexOf, lastIndexOf, wyszukiwanie według warunku przy użyciu pętli for i operatora break, znajdowanie minimum i maksimum z klasą Collections. Poćwiczymy sortowanie list metodami Collections.sort i List.sort, używanie Comparator, posortujemy pary z Map, a także obiekty po polu. Na końcu omówimy typowe błędy: niemodyfikowalne listy z List.of, próby sortowania Set/ Map oraz niepoprawne komparatory.
    Dostępne
  • Wprowadzenie do Stream API: po co są strumienie

    JAVA 25 SELF
    Poziom 30,Lekcja 0
    W tym wykładzie omawiamy, dlaczego imperatywne podejście do przetwarzania kolekcji szybko obrasta boilerplate’em i jak Stream API przenosi kod w styl deklaratywny: łańcuchy operacji filter, map, collect, prosta kompozycja, mniej błędów i łatwy paralelizm przez parallelStream(). Pokażemy obszary zastosowań, historię powstania i typowe błędy, których warto unikać.
    Dostępne
  • Podstawowe operacje Stream API: map, filter, collect

    JAVA 25 SELF
    Poziom 30,Lekcja 1
    Krok po kroku poznasz podstawowe operacje Stream API: jak uzyskać strumień z kolekcji i tablicy ( stream(), Arrays.stream, Stream.of), czym różnią się operacje pośrednie ( filter, map, distinct) od terminalnych ( collect, forEach, count) oraz jak zbierać wyniki za pomocą Collectors ( toList, toSet, joining). Praktyczne przykłady, mini‑zadania i sekcja z typowymi błędami pomogą szybko opanować przetwarzanie potokowe danych.
    Dostępne
  • Podzbiory Stream API: distinct, limit, skip

    JAVA 25 SELF
    Poziom 30,Lekcja 2
    W tej lekcji omawiamy trzy kluczowe operacje Stream API do pracy z podzbiorami danych: distinct (usuwanie duplikatów), limit (ograniczenie liczby elementów) i skip (pomijanie pierwszych elementów). Zobaczysz, jak działają na kolekcjach łańcuchów i obiektów, jak implementacja equals/ hashCode wpływa na wynik distinct, jak łączyć operacje do paginacji i wyboru top‑N oraz jakie błędy występują najczęściej.
    Dostępne
  • Metody forEach, peek: efekty uboczne

    JAVA 25 SELF
    Poziom 30,Lekcja 3
    W wykładzie omawiamy operacje strumieni do efektów ubocznych: terminalną forEach i pośrednią peek. Zrozumiemy, kiedy i po co ich używać, czym się różnią, dlaczego po forEach strumień się „zamyka”, a peek nie zmienia danych i wykonuje się tylko, gdy istnieje operacja terminalna. Pokażemy praktyczne przykłady, omówimy nieoczywiste kwestie i typowe błędy (w tym ConcurrentModificationException oraz niewłaściwe zastępowanie collect metodą forEach).
    Dostępne
  • Przekształcanie kolekcji za pomocą Stream

    JAVA 25 SELF
    Poziom 30,Lekcja 4
    Praktyczny przewodnik po przekształcaniu kolekcji z użyciem Stream API: konwersja List ↔ Set, budowanie map przy użyciu Collectors.toMap() (w tym obsługa duplikatów), łączenie w ciąg za pomocą Collectors.joining(), omówienie operacji terminalnych i pośrednich ( forEach, collect, count, anyMatch i inne). W środku – zrozumiałe przykłady, objaśnienia i typowe błędy.
    Dostępne
  • Metody sum, count, average, max, min w Stream API

    JAVA 25 SELF
    Poziom 31,Lekcja 0
    W tej lekcji omawiamy operacje agregujące Stream API: jak zliczać elementy przez count(), sumy i średnie z prymitywnymi strumieniami ( IntStream, LongStream, DoubleStream) i metodami sum(), average(), a także jak znajdować ekstrema przez min()/ max(). Osobno omówimy pracę z kontenerami Optional, OptionalInt, OptionalLong, OptionalDouble oraz właściwe sposoby wydobywania wartości: orElse(...), ifPresent(...), orElseThrow(). Nauczymy się używać kolektorów Collectors.summingInt, Collectors.averagingInt, Collectors.maxBy/ minBy i łączyć je z groupingBy. Na końcu — omówienie typowych błędów i niuansów.
    Dostępne
  • Metody reduce i collect: agregacja danych

    JAVA 25 SELF
    Poziom 31,Lekcja 1
    Omówimy operacje terminalne strumieni: uniwersalne zwijanie reduce() i potężny „zbieracz” collect(). Zrozumiemy sygnatury z identity, accumulator i combiner, nauczymy się zbierać dane gotowymi kolektorami z Collectors ( toList(), toMap(), joining(), groupingBy()) i zobaczymy, kiedy warto preferować collect() zamiast reduce(). Osobno omówimy pracę z Optional, obsługę duplikatów w toMap() oraz niuanse strumieni równoległych.
    Dostępne
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...
  • 30
Nauka
  • Rejestracja
  • Kurs Java
  • Pomoc w zadaniach
  • Cennik
  • Składnia Javy
Społeczność
  • Użytkownicy
  • Artykuły
  • Forum
  • Czat
  • Historie sukcesu
  • Aktywność
  • Program partnerski
Firma
  • O nas
  • Kontakt
  • Opinie
  • Dla mediów
  • CodeGym dla EDU
  • FAQ
  • Wsparcie
CodeGymCodeGym to kurs online do nauki programowania w Javie od podstaw. Kurs idealny do opanowania Javy dla początkujących. Zawiera 1200+ zadań z natychmiastową weryfikacją oraz niezbędny zakres teorii podstaw Javy. Aby pomóc Ci w nauce, wprowadziliśmy zestaw funkcji motywacyjnych: quizy, projekty programistyczne, materiały o efektywnej nauce i poradnik kariery dla programisty Java.
Obserwuj nas
Język interfejsu
English Deutsch Español हिन्दी Français Português
Polski
বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programiści są tworzeni, nie rodzą się" © 2026 CodeGym
MastercardVisa
"Programiści są tworzeni, nie rodzą się" © 2026 CodeGym