kalendarz 23 lipca 2025 r.
🔁 Tydzień #2: Kolekcje, pętle i Wielka Dwójka – equals() & hashCode()

🔁 Tydzień #2: Kolekcje, pętle i Wielka Dwójka – equals() & hashCode()

kategorie: bootcamp Java Kodilla
autor: Maciej Sobieniak

 TL;DR: Kręciłem pętlami, mierzyłem złożoność Big-O, zaprzyjaźniłem się z kolekcjami i odkryłem, że equals() bez hashCode() to jak login bez hasła.


1. For vs. For-each – czyli dwa sposoby na kręcenie się w kółko

  • for – pełna kontrola nad indeksem (i szansa na IndexOutOfBoundsException, jeśli lubisz dreszczyk emocji).

  • for-each – czystszy kod, zero indeksów, za to brak możliwości usunięcia elementu „w locie” bez iteratora.
    Zadanie: przepisałem starą pętlę na for-each, a potem… wróciłem do klasycznego for, bo trzeba było usuwać elementy. Życie.

2. Big-O – złożoność nie tylko relacji

„Ile kosztuje Twoja pętla?” – zapytał kurs. Policzyliśmy więc:

  • O(1) – marzenie.

  • O(n) – codzienność.

  • O(n²) – koszmar sortowania bąbelkowego.
    Zadanie: porównałem dwa algorytmy, a wykresy czasu wykonania wyglądały jak stockowa giełda w poniedziałek.

3. Interfejs Collection – matka większości list i map

Poznałem ogólne kontrakty i podstawowe metody (add, remove, contains). Teraz już wiem, skąd ArrayList i LinkedList dziedziczą manierę.

4. Wrappery – gdy prymitywy dostają garnitur

intInteger, doubleDouble. Dzięki nim kolekcje mogą bawić się typami prostymi jak dorosłymi.
Fun fact: Autoboxing to magia, ale magiczne sztuczki kosztują czas procesora – zwłaszcza w pętlach.

5. ArrayList vs LinkedList – szybka ściąga

Cecha ArrayList LinkedList
Dostęp po indeksie 🚀 Bardzo szybki 🐢 Wolny
Wstawianie/usuwanie w środku 🐢 Kopiuje pół tablicy 🚀 Przekłada wskaźniki
Pamięć Bardziej kompaktowa Więcej narzutu (referencje)

Komentarze (0)

Nie dodano jeszcze żadnych komentarzy

Odpowiadasz na komentarz:

Dodany:

Dodaj nowy komentarz:

Podobne atykuły, które mogą Cię zainteresować:

Raport z frontu: Tydzień #1 na bootcampie Kodilla Java Developer

W pierwszym tygodniu poznałem interfejsy, zaprzyjaźniłem się z klasami abstrakcyjnymi i odkryłem, że Object ma więcej metod niż ja wypitych kaw.

1. OOP vs. podejście strukturalne

Kodilla zaczęła od filozoficznego pytania: „Czy Twój program jest obiektem czy patelnią pełną funkcji?”

Werdykt: jeśli nie chcesz spalić jajecznicy (czytaj: logiki biznesowej), …

Nowy rozdział – startuję z bootcampem Kodilla Java Developer!

Z dumą ogłaszam, że właśnie zapisałem się na najbardziej klamrową przygodę mojego życia – 36-tygodniowy bootcamp Kodilla Java Developer (to ~660 godzin kodu, zadań i wideocall’i z mentorem). Kurs objęty jest słynną “Job Guarantee”, czyli zwrotem czesnego, jeśli po ukończeniu nie znajdę pracy w ustalonym czasie. Brzmi jak transakcja wiązana: …

🧐 Big‑O – czyli ile maszeruje Twój algorytm

Big‑O to kalkulator lenistwa programu. Im mniejsza literka n w wyniku, tym szybciej idziesz po kawę.

Dlaczego w ogóle liczyć złożoność?

Wyobraź sobie dwie funkcje, które robią to samo, ale jedna kończy się zanim zdążysz mrugnąć, a druga pozwala Ci przeczytać „Władcę Pierścieni” między kolejnymi klatkami animacji. Big‑O mówi nam, …

Menu
Wykorzystuje pliki cookies!

Informuję, że stosuję pliki cookies - w celach statycznych, reklamowych oraz przystosowania serwisu do indywidualnych potrzeb użytkowników.
Są one zapisywane w Twoim urządzeniu końcowym. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki internetowej.