Z kursu: Zaawansowane programowanie w języku Java

Collections Framework w języku Java

- [Instruktor] Kolekcje są istotną częścią języka programowania Java. Pozwalają one grupować obiekty razem w kontenerze, który można iterować w Javie. Istnieje wiele różnych implementacji kolekcji. To, jaki rodzaj kolekcji wybierzesz, zależy od Twoich dokładnych wymagań. Należy jednak pamiętać o kilku kluczowych czynnikach. Po pierwsze, czy kolejność jest ważna? Czasami dobrze jest mieć wszystkie wpisy w dowolnej losowej kolejności. Ale czasami ważne jest, aby mieć do nich dostęp w określonej kolejności. Po drugie, czy duplikaty są dozwolone? Są sytuacje, w których dobrze jest mieć zduplikowane wpisy, a inne, gdy każdy wpis powinien być inny. Innym czynnikiem, który należy wziąć pod uwagę, jest szybkość wykonywania operacji. Różne typy kolekcji zajmują różną ilość czasu na wykonanie określonych operacji. Niektórzy szybko pobierają wpisy. Niektóre są szybsze w ich dodawaniu i usuwaniu. Wreszcie, używana pamięć jest również czynnikiem. Niektóre typy kolekcji zajmują więcej pamięci niż inne. Przydatnym zasobem umożliwiającym wybór kolekcji do użycia jest schemat blokowy dostępny pod tym linkiem. W Javie istnieje zestaw interfejsów, które definiują różne typy kolekcji. Na samym szczycie hierarchii znajduje się Iterable. Wszystkie typy kolekcji implementują Iterable i deklarują forEach metodę. Następnie jest interfejs kolekcji, który rozszerza Iterable. Ten interfejs deklaruje wszystkie metody, które musi mieć każda kolekcja. Na przykład add remove jest puste, toArray i tak dalej. Nie ma klas, które są konkretną implementacją kolekcji bezpośrednio. Zanim przejdziemy do konkretnych klas, jest jeszcze jedna warstwa interfejsów. Należą do nich set, list i queue. Jest ich znacznie więcej, ale są to trzy z najczęściej używanych. Te interfejsy definiują bardziej szczegółowy zestaw zachowań dotyczących zachowania kolekcji. Zestawy to typ kolekcji, który nie zezwala na duplikowanie elementów. Są też nieuporządkowane. Na przykład, jeśli tworzysz grę karcianą i chcesz mieć pewność, że w grze nie ma duplikatów kart, możesz przechowywać je w zestawie. Z drugiej strony listy pozwalają na zduplikowane wpisy. Nie bez znaczenia jest również kolejność elementów na liście. Podczas iteracji po liście elementy nie są zwracane w losowej kolejności, tak jak w przypadku zestawu. Kolejki to rodzaj kolekcji, który umożliwia dodawanie elementów do nagłówków kolekcji. Zazwyczaj używają operacji "pierwsze weszło, pierwsze wyszło". Przypominają one trochę prawdziwe kolejki w sklepie, gdzie pierwsza osoba, która przychodzi, jest pierwszą osobą, która zostanie obsłużona. Istnieje również inna struktura zwana mapami. Mapy w rzeczywistości nie rozszerzają interfejsu kolekcji. Dzieje się tak, ponieważ zawierają one pary klucz-wartość, które nie nadają się do bycia elementami w kolekcji, jednak nadal są uważane za część struktury kolekcji w Javie. Jeśli chcesz dowiedzieć się więcej o kolekcjach w ogóle, dobrym miejscem do rozpoczęcia są samouczki Oracle dostępne pod tymi dwoma linkami.

Spis treści