Różnica między tablicami a listami tablic

Różnica między tablicami a listami tablic
Różnica między tablicami a listami tablic

Wideo: Różnica między tablicami a listami tablic

Wideo: Różnica między tablicami a listami tablic
Wideo: Ups. 2024, Lipiec
Anonim

Tablice a listy tablic

Tablice są najczęściej używaną strukturą danych do przechowywania kolekcji elementów. Większość języków programowania udostępnia metody do łatwego deklarowania tablic i uzyskiwania dostępu do elementów w tablicach. Arraylist może być postrzegana jako dynamiczna tablica, która może rosnąć. Z tego powodu programista nie musi znać rozmiaru tablicy arraylist podczas jej definiowania.

Co to są tablice?

Na rysunku 1 pokazano fragment kodu zwykle używany do deklarowania i przypisywania wartości do tablicy. Rysunek 2 przedstawia wygląd tablicy w pamięci.

wartości int[5];

values[0]=100;

wartości[1]=101;

wartości[2]=102;

values[3]=103;

wartości[4]=104;

Rysunek 1: Kod do deklarowania i przypisywania wartości do tablicy

100 101 102 103 104
Indeks: 0 1 2 3 4

Rysunek 2: Tablica przechowywana w pamięci

Powyżej kodu, definiuje tablicę, która może przechowywać 5 liczb całkowitych i są one dostępne za pomocą indeksów od 0 do 4. Jedną z ważnych właściwości tablicy jest to, że cała tablica jest alokowana jako pojedynczy blok pamięci, a każdy element otrzymuje swoją własne miejsce w tablicy. Po zdefiniowaniu tablicy jej rozmiar jest ustalony. Więc jeśli nie masz pewności co do rozmiaru tablicy w czasie kompilacji, musisz zdefiniować wystarczająco dużą tablicę, aby była po bezpiecznej stronie. Ale w większości przypadków będziemy używać mniej elementów niż przydzieliliśmy. Tak więc znaczna ilość pamięci jest faktycznie marnowana. Z drugiej strony, jeśli „wystarczająco duża tablica” nie jest wystarczająco duża, program się zawiesi.

Co to są Tablice?

Lista tablic może być postrzegana jako tablica dynamiczna, która może rosnąć. Dlatego arraylists są idealne do użycia w sytuacji, gdy nie znasz rozmiaru elementów wymaganych w momencie deklaracji. W Javie tablice tablic mogą zawierać tylko obiekty, nie mogą bezpośrednio przechowywać typów pierwotnych (można umieścić typy pierwotne wewnątrz obiektu lub użyć klas opakowujących typy pierwotne). Generalnie tablice tablic są dostarczane z metodami do wstawiania, usuwania i wyszukiwania. Złożoność czasowa dostępu do elementu wynosi o(1), podczas gdy wstawianie i usuwanie ma złożoność czasową o(n). W Javie, tablice tablic mogą być przeglądane za pomocą pętli foreach, iteratorów lub po prostu za pomocą indeksów.

Jaka jest różnica między tablicami a listami tablic

Mimo że tablice i listy tablic są podobne w tym sensie, że obie służą do przechowywania kolekcji elementów, różnią się sposobem ich zdefiniowania. Rozmiar tablicy musi być podany podczas definiowania tablicy, ale można zdefiniować arraylist bez znajomości rzeczywistego rozmiaru. Możesz dodawać elementy do arraylist po jej zdefiniowaniu, co nie jest możliwe w przypadku tablic. Ale w Javie, arraylists nie mogą przechowywać typów pierwotnych, ale tablice mogą być używane do przechowywania typów pierwotnych. Ale jeśli potrzebujesz struktury danych, która może zmieniać swój rozmiar, arraylist będzie najlepszym wyborem.

Zalecana: