Java tablice | Kurs Java

Tablice Java

Zmienna tablicowa

Tablica jest to specjalny typ zmiennej obiektowej, który służy jako kontener dla danych. Do poszczególnych danych w tablicy możemy odwoływać się za pomocą kluczy.

Zazwyczaj ta struktura wykorzystywana jest do przechowywania większej ilości uporządkowanych danych.

Przykładowo, zamiast definiować 100 zmiennych dla każdego użytkownika obsługiwanego przez aplikację, można zadeklarować tablicę przechowującą tych użytkowników. Takie rozwiązanie jest również bardziej uniwersalne, ponieważ chcąc dodać kolejnego użytkownika, wystarczy dodać nowy element do tablicy, zamiast deklarować kolejną zmienną.

Deklaracja tablicy

Chcąc zadeklarować nową tablicę, trzeba podać typ przechowywanych elementów oraz jej rozmiar.

Rozmiar tablicy jest stały i nie może być modyfikowany podczas działania aplikacji. Dlatego podczas deklaracji trzeba podać jawnie jej rozmiar lub zadeklarować jej elementy, żeby kompilator na ich podstawie mógł sam wyliczyć rozmiar tablicy.

// 1
int[] array1 = new int[10];
// 2
long[] array2 = new long[0];
// 3
double array3[] = new double[2]; 
// 4
int[] array4 = new int[]{1, 2, 3};
  1. deklaracja tablicy przechowującej 10 liczb całkowitych;
  2. tablica 0-elementowa to również tablica, tylko nie ma elementów;
  3. nawiasy kwadratowe oznaczające tablicę mogą być również po nazwie zmiennej;
  4. deklarując tablicę można równocześnie uzupełnić ją danymi. Jednak w tym przypadku nie podajemy jej rozmiaru!

Jako że dowolna tablica jest również typem obiektowym, dziedziczy po klasie Object. Dzięki czemu ma np. metodę equals, ale również wprowadza nowe cechy np. zmienną length, która odpowiada ilości elementów w tablicy.

int[] array1 = new int[]{1, 2};
int[] array2 = new int[]{1, 2};
// 1
assertFalse(array1.equals(array2));
// 2
Assert.assertArrayEquals(array1, array2);
// 3
Assert.assertEquals(2, array1.length);

Ponieważ metoda equals dziedziczy domyślną implementację z klasy Object, nawet dla tablic o takich samych elementach zwróci fałsz.

Wartości domyślne

Deklarując tablicę i nie podając jakimi danymi ma być uzupełniona, zostanie ona uzupełniona wartościami domyślnymi dla wybranego typu, np. dla liczb będzie to 0, a dla zmiennych referencyjnych: null.

int[] array1 = new int[3];
Object[] array2 = new String[3];
System.out.println(Arrays.toString(array1)); // [0, 0, 0]
System.out.println(Arrays.toString(array2)); // [null, null, null]

Indeksy tablicy

Tak jak wcześniej wspominałem, wartości przechowywane w tablicach mogą być odczytywane oraz modyfikowane za pomocą indeksów, pod którymi są przechowywane.

Indeksy w tablicy są liczbami całkowitymi i zaczynają się od zera.

// 1
int[] array1 = new int[]{10, 20, 30, 40}; 
// 2
array1[0] = 1; 
// 3
array1[1] = array1[1] * 3;
  1. Zainicjowano tablicę 4 elementową, pod indeksem 0 jest liczba 10, pod indeksem 1 liczba 20 itp.
  2. Modyfikacja elementu pod indeksem 0. Tablica ma wartość: [1, 20, 30, 40].
  3. Modyfikacja elementu pod indeksem 1. Tablica ma wartość: [1, 60, 30, 40].

Podczas operacji na tablicach trzeba pamiętać, żeby nie przekroczyć jej zakresu indeksów, czyli od 0 do (ilość elementów tablicy – 1), ponieważ dostaniemy wtedy wyjątek: java.lang.ArrayIndexOutOfBoundsException.

Tablice wielowymiarowe

Java poza standardowymi tablicami przechowującymi typy proste lub obiekty oferuje również tablice wielowymiarowe.

Jak już wcześniej ustaliliśmy, tablica jest również obiektem. Dlatego nic nie stoi na przeszkodzie, żeby zrobić tablicę przechowującą inne tablice.

Idąc dalej tym tropem, można stworzyć tablice dwu, trzy i więcej wymiarowe. Jednak w praktyce rzadko wykorzystuje się tablice o więcej niż 3 wymiarach.

Dodatkowo tablice wielowymiarowe nie muszą być symetryczne. To znaczy, że możemy np. zdefiniować tablicę, której elementami będą tablice: 2 elementowa, 4 elementowa i 0 elementowa.

int[] array1 = new int[]{10, 20};
int[] array2 = new int[4];
int[][] array = new int[][]{array1, array2, new int[0]};
System.out.println(Arrays.deepToString(array)); // [[10, 20], [0, 0, 0, 0], []]

 

kierunek java


Jak zostać programistą

8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista.

Jak zostać programistą
No comments
Share:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Chcesz wejść do IT lub zmienić branżę i zostać programistą?

Skorzystaj z DARMOWEJ WIEDZY o Javie! >> KierunekJava.pl

Lista 8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista!

Dołączam do newslettera
i odbieram materiały!

PAMIĘTAJ, żeby odebrać wiadomość potwierdzającą i kliknąć w przycisk.


Zapisując się na newsletter, zgadzasz się na przetwarzanie Twoich danych osobowych w celu wysyłania na wskazany przez Ciebie adres e-mail informacji handlowych o nowościach, promocjach, produktach i usługach związanych z serwisami stormit.pl i kierunekprogramista.pl. Będzie to marketing bezpośredni. Administratorem Twoich danych osobowych będzie Tomasz Woliński prowadzący działalność gospodarczą Tomasz Woliński Storm IT, Przytulna 38/43, 80-176 Gdańsk, NIP: 7431875586. Przysługuje Ci prawo do cofnięcia zgody, żądania wglądu do Twoich danych, wniesienia sprzeciwu co do ich przetwarzania, sprostowania, usunięcia i ograniczenia przetwarzania. Więcej informacji o tym jak przetwarzam Twoje dane znajdziesz na stormit.pl/polityka-prywatnosci/.