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. Poniżej przedstawiam krótką ściągę z tego tygodnia dla ciekawskich oraz mam nadzieję obiektywnie przedstawię swoje wrażenia.

Zapraszam do lektury.

Na pierwszy ogien idą pętle, złożoność oraz interfejs dla collection.

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 …

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 …

🧹 Garbage Collector w Javie – jak naprawdę działa automatyczne sprzątanie pamięci?

Programując w Java nie zwalniasz pamięci ręcznie. Nie wywołujesz free(), nie martwisz się o wskaźniki. A jednak aplikacja działa stabilnie, obiekty znikają, a pamięć się nie „zapcha”.

Za kulisami pracuje …

Lista wszystkich kolekcji

Lista kolekcji i interfejsów

W ramach powtórki poniżej przedstawiam wam listę kolekcji i interfejsów oraz wyjaśnię jak działa proces iteracji po elementach Set i Map, które nia maja określonego porzadku …

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.