Poniżej przedstawiono oczywistą i zwyczajną deklarację tablicową i inicjalizację w Javie.Deklaracja i inicjalizacja macierzy w języku Java. Tablice zachowują się inaczej, gdy pozycja ich indeksów indeksów zmienia się w ich deklaracji.
int r[], s[]; //<-------
r=new int[10];
s=new int[10];
Bardzo podobny przypadek zachowuje się inaczej, gdy pozycja []
zmienia się w rachunku deklaracji podobnego jak pokazano poniżej.
int []p, q[]; //<-------
p=new int[10];
q=new int[10][10];
Proszę spojrzeć na deklarację. Pozycja []
została zmieniona z r[]
na []p
. W takim przypadku tablica q
zachowuje się jak tablica tablic typu int
(która jest zupełnie inna niż w poprzednim przypadku).
Pytanie: Dlaczego jest q
, w tej deklaracji int []p, q[];
traktowane jako dwuwymiarowa tablica?
Dodatkowe informacje:
następującą składnię wygląda słaby.
int []a[];
to jednak zgodne w porządku i po prostu zachowuje się jak int a[][];
lub int [][]a;
.
Dlatego wszystkie poniższe przypadki są ważne.
int [][]e[][][];
int [][][][][]f[][][][];
Wypróbuj ten jeden 'public int numbers() [] {return new int [5]; } ': D –
Ha, wygląda na to, że mój strzał w ciemności trafia w cel :) –
Osobiście wolę zadeklarować jedną zmienną tablicową na linię i zainicjować zmienną w tej samej linii, aby uniknąć tego rodzaju pomyłek. –