Site icon Java blog

Java #7: tablica oraz pętla for

java for loop array

Tablica

Tablica jest kolejną, obok obiektów, strukturą referencyjną. Jej podstawowe cechy to przechowywanie z góry określonej liczby wartości, przy czym wartością mogą zarówno zmienne referencyjne jak i proste (int, float, itp.). Jest to jedyna struktura zdefiniowana wbudowaną w język (inne tego typu konstrukcje zostały napisane za pomocą klas). Korzystałem już z nie pisząc znaną już Ci metodę main.

Deklaracja tablicy liczb całkowitych:

int [] myIntegers;

Inicjalizacja powyższej tablicy pustymi wartościami:

myIntegers = new int [10];

Sprawdzenie wartości elementu zachodzi poprzez wskazanie na konkretną komórkę w tablicy. Tablice w Javie (i w większości języków programowania) iteruje się od 0. Jeśli chciałbym sprawdzić co kryje się w tablicy pod indexem 0 muszę użyć mojej zmiennej i w kwadratowych nawiasach zaznaczyć, który element mnie interesuje. Np:

System.out.println(myIntegers[0]);

Tablica z pustymi wartościami jest średnio przydatna, więc podmienię domyślną wartość pierwszego elementu.

myIntegers[0] = 5;

System.out.println(myIntegers[0]);

W ten sposób mogę nadpisać każdy element tablicy w dowolnej kolejności oraz nieskończoną ilość razy.

Teraz stworzę nową tablicę z od razu zainicjalizowanymi danymi:

float [] myFloat = {1.0f, 2.0f, 3.0f};

Tablice mogą też zawierać obiekty.

Integer firstInteger = 1;
Integer secondInteger = 2;
Integer [] array = {firstInteger, secondInteger};

Mogę tablice zagnieździć w innej tablicy, tworząc wielowymiarowe struktury (np. macierze):

int [][] matrix = {{2 , 3 , 0}, {4, 5, 0}, {0, 7, 8}};

Pętla for

Niestety wprowadzanie ręczne za każdym razem tysiąca wartości do tablic jest czasochłonne, dlatego zautomatyzuję sobie pracę poprze użycie pętli for. Pętla ta służy do iterowania, czyli do przechodzenia przez każdy element jakiejś struktury danych (np. tablicy). Pętla składa się z trzech części, deklaracji i inicjalizacji indexu po którym iterujemy (w tym przypadku i), warunku wyjścia (np. i< n) oraz warunek zmienności pętli po zakończeniu każdego cyklu (tutaj jest to ‘100’).

int [] iterateFor = new int [100];
int n = iterateFor.length;

for(int i = 0; i < n; i++) {

     iterateFor[i] = i+1;
     System.out.println(iterateFor[i]);

}

Klasa Arrays

Są jeszcze inne pętle, jak while lub dowhile, ale na razie nie będą one Tobie potrzebne.

Wróćmy znów do tablic. W Javie została zaimplementowana klasa pomocnicza o nazwie Arrays, która można wykorzystać do pracy przy tablicach. Posiada ona kilka bardzo przydatnych metod, prześledźmy je:

int [] randomNumber = {1, 5, 3, 2, 4};
Arrays.sort(randomNumber);

for(int i = 0; i < randomNumber.length; i++) {
     System.out.println(randomNumber[i]);
}
int[] arrayCopied = Arrays.copyOf(randomNumber, 3);
for(int i = 0; i < arrayCopied.length; i++) {
     System.out.println(arrayCopied[i]);
}

Można też użyć funkcji copiedFromRange, aby skopiować tylko część tablicy, wskazując między którymi indeksami przedział Cię interesuje.

int [] partOfArray = Arrays.copyOfRange(randomNumber, 0, 2);

for(int i = 0; i < partOfArray.length; i++) {
     System.out.println(partOfArray[i]);
}
int [] emptyArray = new int [3];
                               
Arrays.fill(emptyArray, 9);

for(int i = 0; i < emptyArray.length; i++) {
     System.out.println(emptyArray[i]);
}
int[] randomNumbers = {10,3,11,5,8,3,2};
Arrays.sort(randomNumbers); for (int i = 0; i < randomNumbers.length; i++) { int binarySearch = Arrays.binarySearch(randomNumbers, randomNumbers[i]); System.out.println(binarySearch); }

Link do lekcji: https://github.com/developeronthego/java-basics/tree/main/src/main/java/basics/lesson7

Lekcja o tablicach wielowymiarowych: https://developeronthego.pl/java-srednio-zaawansowane-12-tablice-wielowymiarowe/

Exit mobile version