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.
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.
„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.
Collection – matka większości list i mapPoznałem ogólne kontrakty i podstawowe metody (add, remove, contains). Teraz już wiem, skąd ArrayList i LinkedList dziedziczą manierę.
int → Integer, double → Double. 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.
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) |
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.
Kodilla zaczęła od filozoficznego …
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 …
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 …
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 …
Komentarze (0)
Nie dodano jeszcze żadnych komentarzy
Dodaj nowy komentarz: