Java #39: logowanie aplikacji

java utils logger

Termin logowanie aplikacji pewnie kojarzy Ci się z logowaniem się przez jakieś okienko do aplikacji. Tymczasem możesz też logować jakieś dane podczas pisania swojego kodu. Po co wykonywać taką czynność? Podczas tego kursu wielokrotnie używałem metody println do wyświetlania zawartości zmiennych, co na pewno bardzo ułatwiło Ci zrozumienie napisanego przeze mnie kodu. Teraz wyobraź sobie, … Dowiedz się więcej

Java #38: testy jednostkowe

java junit

Znasz już paradygmaty programowania obiektowego, umiesz korzystać z kolekcji oraz obsługiwać wyjątki. Tym razem postaram się wytłumaczyć Ci, jak używać testy jednostkowe do sprawdzenia swojego kodu. Zanim przejdę do omawiania konkretnej implementacji, przypomnij sobie w jaki sposób testowałem swój kod we wszystkich poprzednich wpisach. Tak, słusznie zauważyłeś/aś, że odbywało się to przez użycie metody main. … Dowiedz się więcej

Java #37: wyjątki i ich obsługa

java exceptions

Zanim zacznę omawiać, czym są wyjątki (ang. exceptions), postaraj się przetestować poniższy kod: Wynik na konsoli powinien być podobny do poniższego: Co to oznacza? Ponieważ użyłem zmiennej, do którego nie przypisałem wcześniej żadnej referencji (brak inicjalizacji), to wyświetlił mi się komunikat na konsoli, oznaczający, że zaszedł Nullpointer Exception. Widziałeś już na pewno takie informacje nie … Dowiedz się więcej

Java #36: interfejs Iterator

java iterator

Pojęcie iteratora jest ostatnim, które związane jest z kolekcjami. Są one alternatywą dla klasyczny pętli for oraz foreach. Każda z kolekcji Java, która dziedziczy po interfejsie Collection, posiada w swoim API operację o nazwie 'iterator’. Interfejs Iterator jest bardzo prostą strukturą udostępniającą właściwie tylko trzy metody: next, hasNext, oraz remove. Przeglądanie rekordów Iteratory dobrze sprawdzają … Dowiedz się więcej

Java #35: lista dwukierunkowa i reszta kolekcji

java linkedlist

Lista dwukierunkowa Kolejną ciekawą strukturą danych jest lista dwukierunkowa (ang. linked list). Działa podobnie jak zwykła lista, ale ma trochę inne zastosowanie. Zwykła lista jest dość wolną strukturą jeśli chodzi o modyfikowania danych, dlatego używaj jej do przechowywania informacji i ich odczytu. Ponieważ lista dwukierunkowa posiada dwa wskaźniki (na element następny oraz poprzedni), modyfikowanie danych … Dowiedz się więcej

Java #34: TreeSet (drzewo)

java treeset

Skoro były już tablice, zbiory i mapy, to teraz muszą być drzewa. 😉 Drzewami (ang. treeset, dosłownie: zbiór drzewa) nazywamy struktury danych które swoim wyglądem przypominają drzewa genealogiczne, które na pewno znasz z lekcji w podstawówce. Każde drzewo zawiera jeden korzeń (root) z którego wychodzą kolejne liście/węzły (nodes). Każdy następny węzeł staje się też korzeniem … Dowiedz się więcej

Java #33: HashSet (zbiór)

Java hashset

Zbiory (ang. sets) to bardzo przydatna alternatywa dla listy. Są dużo bardziej wydajne, ale nie mogą zawierać duplikatów. Zbiory są bardzo przydatne, gdy potrzebujesz struktury danych, która powinna zawierać unikatowe pojęcia. Np. zbiór krajów, zbiór miast, itd. Najpopularniejszą implementacją interfejsu Set jest HashSet, i to tą klasę tutaj omówię. Podobieństwa HashSet do listy Metody tej … Dowiedz się więcej

Java #32: hashmap (mapa)

java hashmap

Mapa w przeciwieństwie do listy, umożliwia połączenie ze sobą dwóch obiektów: klucza i wartości. Dobrym przykładem używania mapy będzie próba zaimplementowania jakiegoś słownika. Słownik z definicji posiada szukaną nazwę zagadnienia (klucz) oraz jego definicję (wartość). Przykładowa mapa: Podobnie jak w przypadku tablicy dynamicznej, zamiast przy deklaracji zmiennej używać jej implementacji, powinno się wykorzystać jej interfejs … Dowiedz się więcej