JavaRush /Blog Java /Random-PL /Tablice Java
articles
Poziom 15

Tablice Java

Opublikowano w grupie Random-PL

Tablice

Tablica to struktura danych przechowująca wartości tego samego typu. Dostęp do poszczególnych elementów tablicy uzyskuje się za pomocą indeksu będącego liczbą całkowitą. Na przykład, jeśli a jest tablicą liczb całkowitych, to wartość wyrażenia a[i] jest równa i-tej liczbie całkowitej w tablicy. Tablice Java - 1Tablicę deklaruje się w następujący sposób: najpierw podaje się typ tablicy, czyli typ elementów znajdujących się w tablicy, następnie podaje się parę pustych nawiasów kwadratowych, a następnie nazwę zmiennej. Na przykład, oto jak zadeklarować tablicę składającą się z liczb całkowitych:
int[] a;
Jednak ta instrukcja deklaruje jedynie zmienną а, bez inicjowania jej rzeczywistą tablicą. Aby utworzyć tablicę, należy użyć operatora new.
int[] a = new int [100];
Operator ten tworzy tablicę składającą się ze 100 liczb całkowitych. Elementy tej tablicy są ponumerowane od 0 do 99 (a nie od 1 do 100). Utworzoną tablicę można wypełnić np. za pomocą pętli.
int[] а = new int[100];
for (int i = 0; i < 100; i++)
 a[i] = i; //Заполняет массив числами от 0 до 99
Jeśli spróbujesz uzyskać dostęp do elementu а [100](lub dowolnego innego elementu, którego indeks znajduje się poza zakresem od 0 do 99) poprzez utworzenie tablicy składającej się ze 100 elementów, program zakończy działanie, ponieważ wystąpi wyjątek indeks tablicy poza zakresem. Aby policzyć elementy tablicy, użyj metody Array name .length. Na przykład,
for (int i = 0; i < a.length; i++, System.out.println(a[i]));
Po utworzeniu tablicy nie ma możliwości zmiany jej rozmiaru (choć można oczywiście zmieniać jej poszczególne elementy). Jeśli podczas wykonywania programu musisz często zmieniać rozmiar tablicy, lepiej jest użyć innej struktury danych zwanej listą tablic. Tablicę można zadeklarować na dwa sposoby:
int[] a;
Lub
int a[];
Większość programistów Java preferuje pierwszy styl, ponieważ wyraźniej oddziela typ tablicy int [](tablica liczb całkowitych) od nazwy zmiennej.

Inicjatory tablic i tablice nienazwane

Java posiada funkcję jednoczesnego tworzenia tablicy i jej inicjowania. Oto przykład takiej struktury syntaktycznej:
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
Należy pamiętać, że w tym przypadku nie ma potrzeby stosowania operatora new. Dodatkowo możesz nawet zainicjować nienazwaną tablicę:
new int[] {16, 19, 23, 29, 31, 37}
To wyrażenie przydziela pamięć nowej tablicy i wypełnia ją liczbami podanymi w nawiasach klamrowych. W takim przypadku obliczana jest ich liczba i odpowiednio określany jest rozmiar tablicy. Ta konstrukcja syntaktyczna jest wygodna w użyciu do ponownej inicjalizacji tablicy bez tworzenia nowej zmiennej. Na przykład wyrażenie
smallPrimes = new int{17, 19, 23, 29, 31, 37};
jest skróconym wyrażeniem
int[] anonymous = {17, 19, 23, 29, 31, 37};
smallPrimes = anonymous;
Można utworzyć tablicę o zerowym rozmiarze. Taka tablica może być przydatna podczas pisania metody oceniającej tablicę, która okazuje się pusta. Tablicę o zerowej długości deklaruje się w następujący sposób:
new тип Элементов[]
Należy pamiętać, że taka tablica nie jest równoważna obiektowi null.

Kopiowanie tablic

Jedną tablicę można skopiować do drugiej, ale obie zmienne będą odnosić się do tej samej tablicy.
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12; //Теперь элемент smallPrimes[5]также równa się 12
Wynik pokazano na ryc. 3.1. Jeśli chcesz skopiować wszystkie elementy jednej tablicy do drugiej, powinieneś użyć metody arraycopy z klasy System. Jego wywołanie wygląda następująco:
System.arraycopy(from, fromlndex, to, tolndex, count);
Tablica tomusi być wystarczająco duża, aby pomieścić wszystkie elementy do skopiowania. Tablice Java - 2
Ryc.3.1. Kopiowanie tablicy
Przykładowo pokazane poniżej operatory, których wyniki pokazano na rys. 3.2, utwórz dwie tablice, a następnie skopiuj cztery ostatnie elementy pierwszej tablicy do drugiej. Kopiowanie rozpoczyna się od drugiej pozycji w tablicy źródłowej, a skopiowane elementy umieszczane są w tablicy docelowej począwszy od trzeciej pozycji.
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.аrrаусору(smallPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
System.out.println(i + ": " + luckyNumbers[i]);
Wykonanie tych instrukcji daje następujący wynik.
0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13
Tablice Java - 3
Ryż. 3.2. Kopiowanie elementów tablicy
Tablica w Javie znacznie różni się od tablicy w C++. Jednakże jest to praktycznie to samo, co wskaźnik do tablicy dynamicznej. Oznacza to, że operator
int[] a = new int[100]; //Java
jest równoważne operatorowi
int* = new int[100]; //C++,
а не
int a[100]; //C++
W Javie []domyślny operator sprawdza zakres indeksów. Ponadto w Javie nie ma arytmetyki wskaźników — nie można zwiększać wskaźnika, aby uzyskać dostęp do następnego elementu tablicy. Link do źródła: tablice Java
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION