Różnica między tablicami a tablicami

Tablice vs tablice list

Tablice to najczęściej używana struktura danych do przechowywania kolekcji elementów. Większość języków programowania zapewnia metody łatwego deklarowania tablic i uzyskiwania dostępu do elementów w tablicach. Arraylistę można postrzegać jako tablicę dynamiczną, która może rosnąć. Z tego powodu programista nie musi znać rozmiaru tablicy arraylist, gdy ją definiuje.

Co to są tablice??

Na rysunku 1 pokazano fragment kodu zwykle używany do deklarowania i przypisywania wartości do tablicy. Rysunek 2 pokazuje, jak tablica wyglądałaby w pamięci.

wartości int [5];

wartości [0] = 100;

wartości [1] = 101;

wartości [2] = 102;

wartości [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 zapisana w pamięci

Powyższy kod 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ą ważną właściwością tablicy jest to, że cała tablica jest przydzielona jako pojedynczy blok pamięci, a każdy element otrzymuje własną przestrzeń w tablicy . Po zdefiniowaniu tablicy jej rozmiar jest ustalany. Jeśli więc nie jesteś pewien wielkości tablicy w czasie kompilacji, musisz zdefiniować wystarczająco dużą tablicę, aby być po bezpiecznej stronie. Ale w większości przypadków będziemy używać mniejszej liczby elementów niż przydzieliliśmy. Tak więc marnuje się znaczną ilość pamięci. Z drugiej strony, jeśli „wystarczająco duża tablica” nie jest wystarczająco duża, program się zawiesi.

Jakie są Arraylists?

Arraylistę można postrzegać jako tablicę dynamiczną, która może rosnąć. Dlatego arraylisty idealnie nadają się do użycia w sytuacji, gdy nie znasz wielkości elementów wymaganych w momencie deklaracji. W Javie arraylisty mogą przechowywać tylko obiekty, nie mogą bezpośrednio przechowywać typów pierwotnych (możesz umieścić typy pierwotne wewnątrz obiektu lub użyć klas opakowań typów pierwotnych). Ogólnie rzecz biorąc, arraylists są wyposażone w metody przeprowadzania wstawiania, usuwania i wyszukiwania. Złożoność czasowa dostępu do elementu wynosi o (1), natomiast wstawianie i usuwanie ma złożoność czasową o (n). W Javie tablice arraylerów można przeglądać 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 tablice są podobne w tym sensie, że oba służą do przechowywania kolekcji elementów, różnią się sposobem ich zdefiniowania. Rozmiar tablicy należy podać, gdy tablica jest zdefiniowana, ale można zdefiniować listę arraylist, nie znając rzeczywistej wielkości. Możesz dodawać elementy do tablicy zestawów po jej zdefiniowaniu i nie jest to możliwe w przypadku tablic. Ale w Javie tablice tablic 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 byłby najlepszym wyborem.