– Cześć, Amigo!
– Cześć, Basiu!
– Dziś opowiem Ci o nowej, ciekawej jednostce: tablicy. Tablica to taki typ danych, który może przechowywać wiele wartości, a nie tylko jedną.
– Zacznijmy od analogii. Porównajmy dom z apartamentowcem. W zwyczajnym domu mieszka zazwyczaj jedna rodzina, natomiast w apartamentowcu mieszkań jest wiele. Aby wysłać list do rodziny mieszkającej w domu, musisz znać unikalny numer ich domu. A jeśli chcesz wysłać list do rodziny w apartamentowcu, musisz znać unikalny numer apartamentowca oraz mieszkania.
– Jak dotąd wszystko jest jasne.
– Zmienna tablica jest jak nasz apartamentowiec. Możesz w niej przechowywać wiele wartości, a nie tylko jedną. Taka zmienna ma wiele mieszkań (elementów), do których można się odnieść, używając ich numeru (indeksu). Aby to zrobić, należy wskazać indeks elementu tablicy, do którego chcesz uzyskać dostęp, w nawiasach kwadratowych zaraz po nazwie zmiennej tablica. To raczej proste.
– Mam nadzieję, Basiu.
– Zmienna apartamentowca (zmienna array) może zawierać wiele elementów różnych typów. Wystarczy wpisać 'NazwaTypu[] zmienna_nazwa' zamiast 'NazwaTypu zmienna_nazwa'.
Oto kilka przykładów:
Kod | Opis |
---|---|
|
Tworzy tablicę typu String z 5 elementami |
|
Wyświetli się pięć zmiennych 'null'.
Aby uzyskać dostęp do konkretnego elementu tablicy, użyj nawiasów kwadratowych i indeksu tego elementu. |
|
Do listLicznik zostanie przypisana wartość 5, która jest liczbą elementów listy z tablicą.lista.length przechowuje długość tablicy (liczbę elementów). |
|
Podczas przypisywania obiektów do elementów tablicy musisz wskazać indeks elementu w nawiasach kwadratowych. |
|
Wyświetl wartości wszystkich elementów tablicy na ekranie. |
– Ależ ciekawe!
– Zmienna tablicy wymaga dodatkowej inicjalizacji.
– ?
– Jeśli mamy zwykłą zmienną, możemy ją po prostu zadeklarować i przypisać do niej różne wartości. A z tablicą jest to trochę bardziej skomplikowane.
– Musimy najpierw utworzyć kontener, który będzie miał N elementów i dopiero wtedy możemy umieszczać w nim wartości.
Kod | Opis |
---|---|
|
Zmienna tablicy lista jest null. Może tylko przechowywać referencję do kontenera z elementami. Musisz utworzyć kontener osobno. |
|
Używa kontenera na 5 elementów i przypisuje referencję do zmiennej lista . Kontener zawiera 5 mieszkań (elementów) o numerach: 0, 1, 2, 3 i 4. |
|
Tworzy kontener dla 1 elementu i przypisuje referencję do zmiennej lista . Aby umieścić coś w tym kontenerze, napiszemy coś w stylu lista[0] = "Elo!"; |
|
Używa kontenera dla 0 elementów i przypisuje referencję do zmiennej lista . Nie możesz umieścić niczego w tym kontenerze. |
– Rozumiem. Trochę mi się to rozjaśniło.
– A oto kilka podstawowych faktów o tablicach:
1) Tablica składa się z wielu elementów.
2) Aby uzyskać dostęp do jakiegoś elementu, wskazujesz jego numer (indeks).
3) Wszystkie elementy są tego samego typu.
4) Wartość początkowa dla wszystkich elementów to null; dla tablic typu prostego wartość początkowa to 0; 0.0 (dla liczb ułamkowych) lub false (dla boolean). Tak samo jest z niezinicjalizowanymi zmiennymi, które nie są w tablicach.
5) String[] lista po prostu deklaruje zmienną. Najpierw należy utworzyć tablicę (kontener), coś w niej umieścić, a dopiero potem jej używać (spójrz na poniższy przykład).
6) Kiedy tworzymy obiekt tablicy (kontener), musimy wskazać jej długość lub liczbę elementów. Robimy to za pomocą NazwaTypu[n];
Oto kilka przykładów:
Kod | Opis |
---|---|
|
s jest równe nulllista jest równe null |
|
Zmienna lista przechowuje referencję do obiektu – 10-elementowej tablicy ciągówn jest równe 10 |
|
Teraz lista zawiera 0 elementów tablicy. Tablica istnieje, ale nie może przechowywać Stringów. |
|
To wyrzuci wyjątek (błąd run-time) i program zostanie zakończony: lista zawiera referencję null. |
|
To wyrzuci wyjątek (błąd run-time): array index out of bounds (wyjątek może wystąpić w sytuacji, w której próbujemy odwołać się do elementu tablicy lub struktury danych wykraczając poza jej rozmiar).
Jeśli |
GO TO FULL VERSION