Tablica

Uporządkowana kolekcja wartości przechowywanych pod kolejnymi indeksami. Pozwala grupować wiele elementów pod jedną zmienną.

Tablica (ang. array) to uporządkowana kolekcja wartości przechowywanych pod kolejnymi indeksami, dostępna pod jedną nazwą zmiennej. Zamiast trzymać sto liczb w stu osobnych zmiennych, wrzucasz je do jednej tablicy i sięgasz po konkretny element przez jego pozycję. W większości języków indeksowanie zaczyna się od zera, więc pierwszy element ma indeks 0, a nie 1 (to klasyczna pułapka na początkujących).

Pod maską klasyczna tablica to ciągły kawałek pamięci, w którym elementy leżą obok siebie. Dzięki temu dostęp do dowolnego elementu po indeksie jest błyskawiczny i ma stały koszt, niezależnie od tego, czy sięgasz po pierwszy, czy po milionowy. Komputer po prostu liczy: adres początku plus indeks razy rozmiar elementu. To dlatego tablice są tak szybkie w odczycie i tak chętnie używane jako fundament innych struktur danych.

Do czego się przydaje

Tablicy używasz wszędzie tam, gdzie masz wiele danych tego samego typu, które chcesz traktować jako całość: lista użytkowników, piksele obrazka, kolejne pomiary z czujnika, znaki w tekście. Idealnie współgra z pętlą, bo możesz przejść po wszystkich elementach po kolei, posortować je, przefiltrować albo zsumować.

Przykład w JavaScript: tworzysz tablicę dni tygodnia i sięgasz po konkretny element.

  • const dni = ["pon", "wt", "śr", "czw", "pt"];
  • dni[0] zwróci "pon", a dni.length da 5
  • dni.push("sob") dorzuci element na koniec

W Pythonie odpowiednikiem jest list (dni = ["pon", "wt"]), w Javie czy C masz tablice o sztywnym, z góry ustalonym rozmiarze. To rozróżnienie ma znaczenie: tablica o stałej długości jest szybka, ale nie urośnie sama, a struktury typu ArrayList czy list potrafią się rozszerzać kosztem trochę większego narzutu.

Na co uważać

Najczęstszy błąd to wyjście poza zakres, czyli sięganie po indeks, którego nie ma. W tablicy pięcioelementowej ostatni poprawny indeks to 4; odwołanie do 5 kończy się błędem (np. IndexError w Pythonie) albo, w językach niskopoziomowych, odczytem śmieci z pamięci. Drugi klasyk to mylenie długości z ostatnim indeksem oraz zakładanie, że tablica numerowana jest od jedynki. Pamiętaj też, że w klasycznych tablicach o stałym rozmiarze wstawianie elementu w środek bywa kosztowne, bo trzeba przesunąć resztę elementów.

Pojęcia powiązane: indeks, pętla, lista, tablica wielowymiarowa, struktura danych, lista wiązana, słownik (mapa) oraz kolekcja.