Jeśli program musi pracować z wieloma takimi samymi wartościami typ danych, możesz zadeklarować zmienna dla każdej liczby. Na przykład program wyświetlający numery loterii:
int lotteryNumber1 = 16;
int lotteryNumber2 = 32;
int lotteryNumber3 = 12;
int lotteryNumber4 = 23;
int lotteryNumber5 = 33;int lotteryNumber6 = 20;
Bardziej eleganckim sposobem radzenia sobie z wartościami, które można grupować, jest użycie tablicy. Tablica jest kontenerem, który przechowuje stałą liczbę wartości typu danych. W powyższym przykładzie numery loterii można pogrupować w tablicy int:
int [] lotteryNumbers = {16,32,12,23,33,20};
Pomyśl o tablicy jak o rzędzie pudeł. Liczba pól w tablicy nie może się zmienić. Każde pole może zawierać wartość, o ile ma ten sam typ danych, co wartości zawarte w innych polach. Możesz zajrzeć do pudełka, aby zobaczyć, jaką wartość zawiera, lub zastąpić zawartość pudełka inną wartością. Mówiąc o tablicach, pola nazywane są elementami.
Deklarowanie i inicjowanie tablicy
Instrukcja deklaracji dla tablicy jest podobna do poprzedniej
zadeklaruj dowolną inną zmienną. Zawiera typ danych, po którym następuje nazwa tablicy - jedyną różnicą jest umieszczenie nawiasów kwadratowych obok typu danych:int [] intArray;
float [] floatArray;char [] charArray;
The oświadczenia deklaracyjne powyżej powiedz kompilatorowi, że
intArrayzmienna jest tablicą
ints,
floatArrayjest tablicą
pływai
charArrayto tablica znaków. Jak każda zmienna, nie można ich używać, dopóki nie zostanie zainicjowana przez przypisanie jej wartości. W przypadku tablicy przypisanie wartości do tablicy musi określać rozmiar tablicy:
intArray = new int [10];
Liczba w nawiasach określa, ile elementów zawiera tablica. Powyższa instrukcja przypisania tworzy tablicę int z dziesięcioma elementami. Oczywiście nie ma powodu, dla którego deklaracja i przypisanie nie mogą się zdarzyć w jednym oświadczeniu:
float [] floatArray = new float [10];
Tablice nie są ograniczone do prymitywnych typów danych. Tablice obiektów można tworzyć:
String [] names = new String [5];
Korzystanie z tablicy
Po zainicjowaniu tablicy elementy mogą mieć przypisane wartości za pomocą indeksu tablicy. Indeks określa pozycję każdego elementu w tablicy. Pierwszy element ma 0, drugi element 1 i tak dalej. Należy zauważyć, że indeks pierwszego elementu wynosi 0. Łatwo jest myśleć, że ponieważ tablica ma dziesięć elementów, indeks wynosi od 1 do 10 zamiast od 0 do 9. Na przykład, jeśli wrócimy do przykładu liczb loterii, możemy utworzyć tablicę zawierającą 6 elementów i przypisać numery loterii do elementów:
int [] lotteryNumbers = new int [6];
lotteryNumbers [0] = 16;
lotteryNumbers [1] = 32;
lotteryNumbers [2] = 12;
lotteryNumbers [3] = 23;
lotteryNumbers [4] = 33;lotteryNumbers [5] = 20;
Istnieje skrót do wypełniania elementów w tablicy poprzez umieszczenie wartości elementów w instrukcji deklaracji:
int [] lotteryNumbers = {16,32,12,23,33,20};String [] names = {„John”, „James”, „Julian”, „Jack”, „Jonathon”};
Wartości dla każdego elementu są umieszczone w nawiasach klamrowych. Kolejność wartości określa, który element ma przypisaną wartość, zaczynając od pozycji indeksu 0. Liczba elementów w tablicy zależy od liczby wartości w nawiasach klamrowych.
Aby uzyskać wartość elementu, stosuje się jego indeks:
System.out.println („Wartość pierwszego elementu to” + lotteryNumbers [0]);
Aby dowiedzieć się, ile elementów tablica używa pola długości:
System.out.println („Tablica lotteryNumbers ma” + lotteryNumbers.length + „elementy”);
Uwaga: Częstym błędem przy stosowaniu metody długości jest zapomnienie o użyciu wartości długości jako pozycji indeksu. To zawsze spowoduje błąd, ponieważ pozycje indeksu tablicy mają wartość od 0 do długości -1.
Tablice wielowymiarowe
Tablice, na które patrzyliśmy do tej pory, są znane jako tablice jednowymiarowe (lub jednowymiarowe). Oznacza to, że mają tylko jeden rząd elementów. Jednak tablice mogą mieć więcej niż jeden wymiar. Wielowymiarowy to tak naprawdę tablica zawierająca tablice:
int [] [] lotteryNumbers = {{16,32, 12,23,33,20}, {34, 40, 33, 131, 31, 24}};
Indeks tablicy wielowymiarowej składa się z dwóch liczb:
System.out.println („Wartość elementu 1,4 wynosi” + lotteryNumbers [1] [4]);
Chociaż długość tablic zawartych w tablicy wielowymiarowej nie musi być takiej samej długości:
String [] [] names = new String [5] [7];
Kopiowanie tablicy
Aby skopiować tablicę, najłatwiej jest użyć
arraycopymetoda klasy System. The
arraycopyMetoda może być użyta do skopiowania wszystkich elementów tablicy lub ich podsekcji. Istnieje pięć parametrów przekazanych do
arraycopymetoda - oryginalna tablica, pozycja indeksu, od której należy skopiować element, nowa tablica, pozycja indeksu, od której należy rozpocząć wstawianie, liczba elementów do skopiowania:
public static void arraycopy (Object src, int srcPos, Object dest, int destPos, int length)
Na przykład, aby utworzyć nową tablicę zawierającą cztery ostatnie elementy an
intszyk:
int [] lotteryNumbers = {16,32,12,23,33,20};
int [] newArrayNumbers = new int [4];System.arraycopy (lotteryNumbers, 2, newArrayNumbers, 0, 4);
Ponieważ tablice mają stałą długość,
arraycopyMetoda może być użytecznym sposobem zmiany rozmiaru tablicy.
Aby poszerzyć swoją wiedzę na temat tablic, możesz dowiedzieć się o manipulowaniu tablicami za pomocą tablic klasy i tworzenie tablic dynamicznych (tj. tablic, gdy liczba elementów nie jest liczbą stałą) używając Klasa ArrayList.