Co to jest arraylist?
Arraylist w programowaniu komputerowym to struktura danych, która zachowuje się jak tablica komputerowa, ale także implementuje możliwość dynamicznego zwiększania wielkości tablicy w razie potrzeby. W przeciwieństwie do wewnętrznego typu danych tablicy, której nie można zmienić rozmiaru podczas wykonywania programu, struktura ArrayList może rosnąć i zmniejszyć rozmiar tablicy w odpowiedzi na dodanie lub usunięcie elementów. Ma bardzo korzystny profil wydajności, umożliwiający szybki dostęp do gromadzenia danych. Istnieją jednak dwa przypadki, w których jest wolniejszy niż niektóre inne struktury danych, a mianowicie dodanie i usuwanie elementów z środka tablicy. Większość obiektowych języków programowania ma jakiś rodzaj implementacji takiej listy, chociaż czasami nazywane są tablicami dynamicznymi.
za pomocą arrayList zapewnia program z możliwością dostępu do obiektów danych z numerem indeksu natychmiast zamiast przejść przez całą sekwencję danych, aby znaleźć adres, co jest wymagane, wymaganeED z powiązanymi listami. W razie potrzeby możliwość zwiększenia wielkości tablicy, jest to bardzo zrównoważone podejście, które rozważa zarówno elastyczność, jak i prędkość. Dodatkowo, gdy elementy są usuwane z takiej listy, rozmiar tablicy jest zmniejszony, uwalniając przestrzeń pamięci.
Jedną z korzyści wynikających z użycia arrayList w niektórych innych strukturach danych jest to, że obiekt opakowania nie jest wymagany do zawierania przechowywanych danych. W przypadku powiązanej listy lub tabeli skrótu zwykle potrzebny jest osobny obiekt, aby utrzymać technikę stosowaną do trzymania i manipulowania kolekcją. W przypadku ArrayList jedynymi potrzebnymi informacjami na temat obiektów danych jest adres obiektu w pamięci. Oznacza to, że podczas pracy z tego typem listy będzie mniejsze.
Potencjalny problem z użyciem tablicy może pochodzić z systemu wdrażania i zarządzania pamięcią. Większość tablic to Alzlokalizowane jako kolejne lokalizacje pamięci. Tak więc, aby użyć tablicy określonej wielkości, przynajmniej tyle pamięci musi być dostępnych w nieprzerwanej sekwencji bloków. Tablica dynamiczna może się rozmiar kilka razy, więc może wystąpić fragmentacja pamięci i prowadzić do awarii alokacji pamięci, zatrzymując wykonywanie programu.
Wydajność arraylist jest podobna do stosowania standardowej tablicy, chociaż czasy dostępu są nieco wolniejsze, ponieważ tablica jest zamknięta w obiekcie. Jednym z przykładów, w których tablica dynamiczna może zwolnić dramatycznie, w zależności od implementacji, jest to, kiedy należy zmienić rozmiar tablicy. Może to obejmować skopiowanie obecnej tablicy do nowej tablicy, która została przydzielona do nowego pożądanego rozmiaru, powodując tymczasową degradację wydajności. Tego samego problemu można wystąpić przy dodawaniu lub usuwaniu elementu ze środka listy, powodując przeniesienie wszystkich następujących elementów do nowej lokalizacji.