15/10/2018

Java 06: Nizovi

Ukoliko nam je potrebno da imamo više promenljivih istog tipa Java nam nudi mogućnost da napravimo niz. Pri pravljenju niza računaru moramo da „kažemo“ kojeg tipa hoćemo elementi da budu, naziv niza i broj elemenata niza.

Deklaracija

int[] niz;

ili

int niz[];

Zauzimanje mesta u memoriji za 10 promenljivih tipa int

niz = new int[10];

Ili sve u jednoj liniji:

int[] niz = new int[10];

Takođe moguće je i dodeliti vrednosti elementima.

int[] niz = {1, 2, 3, 4, 5};

Pristupanje elementima

Pristupanje elementima niza vrši se preko indeksa (rednog proja elementa). S ‘tim što indeksiranje počinje sa brojem 0. Ukoliko smo napravili niz od 3 elementa njihovi indeksi će biti 0, 1 i 2. Ukoliko želimo da pristupimo elementu sa indeksom dva koristimo sledeću sintaksu:

niz[2];

Takođe moguće je i menjati vrednosti određenog elementa.

niz[2] = 5;

Primer

  • Napraviti niz od 5 elemenata koji predstavlja ocene i izračunati prosek učenika.
Kod:
public class HelloWorld{

     public static void main(String []args){
        int[] ocene = {5, 4, 5, 4, 5};
        double prosek = (ocene[0] + ocene[1] + ocene[2] + ocene[3] + ocene[4]) / 5.0;
        System.out.println(prosek);
     }
}
Ispis:
4.6

Komentar: Ukoliko umesto “5.0” kod računanja proseka upišemo “5” rezultat će biti neispravan tj. biće “4”. Do pogrešnog rezultata će doći zato što su sve promenljuve i sve vrednsoti sa desne strane jednakosti tipa int (niz intova i broj 5)m pa će i rezultat biti int (tj. rezultat će se zaokružiti). Dodavanjem “.0” od broja tipa int pravimo decimalni broj.

For petlja za prolaz kroz niz

Zamislite sada da imamo niz od 1000 elemenata bilo bi izuzetno teško pisati ručno svaki element. Zato kada nam je potrebno da prođemo kroz sve elemente niza koristimo for petlju.

Dužina niza

Umesto da pamtimo dužinu svakog niza java nam nudi mogućnost da do te informacije programski dođemo, a način je vrlo jednostavan:

niz.length 

Primer:

  • Napraviti niz od 5 elemenata koji predstavlja ocene i izračunati prosek učenika, za prolaz kroz niz koristiti for petlju.
Kod:
public class HelloWorld{

     public static void main(String []args){
        int[] ocene = {5, 4, 5, 4, 5};
        double prosek;
        double zbir = 0;
        
        for(int i = 0; i< ocene.length; i++) {
            zbir += ocene[i];
        }
        
        prosek = zbir / ocene.length;
        System.out.println(prosek);
        
     }
}
Ispis:

4.6

For-each petlja

Pojednostavljen način pisanja for petlje iz prethodnog primera je takozvana for-each petlja. Blok naredbi će se pohedinačno izvršiti za svaki element niza. Ona je preporučeni način prolaska kroz nizove, a piše se veoma jednostavno:

for(int element : niz){blokNaredbi}

Gde “element” predstavlja trenutni element za koji se vrši blok naredbi.

Primer:

  • Napraviti niz od 5 elemenata koji predstavlja ocene i izračunati prosek učenika za prolaz kroz niz koristiti for-each petlju.
Kod:
public class HelloWorld{

     public static void main(String []args){
        int[] ocene = {5, 4, 5, 4, 5};
        double prosek;
        double zbir = 0;
        
        for(int ocena : ocene) {
            zbir += ocena;
        }
        
        prosek = zbir / ocene.length;
        System.out.println(prosek);
        
     }
}
Ispis:

4.6

Višedimenzionalni nizovi

U javi element niza može biti bilo šta, pa tako postoji mogućnost i praviti niz čiji je element drugi niz. Broj dimenzija koju java podržava je 255, što je daleko više od onoga što će vam ikada biti potrebno. Dvodimenzionalni niz:
int[][] niz = {{1,2,3},{4,5,6},{7,8,9}};
Trodimenzionalni niz:
int[][][] niz = {{1,2,3},{4,5,6},{7,8,9}},
              {{1,2,3},{4,5,6},{7,8,9}},
              {{1,2,3},{4,5,6},{7,8,9}};

Vrednosti elemenata 2D niza:
[1] [2] [3]
[4] [5] [6]
[7] [8] [9]

Indeksi elemenata 2D niza:

[niz[0][0]] [niz[0][1]] [niz[0][2]]

[niz[1][0]] [niz[1][1]] [niz[1][2]]

[niz[2][0]] [niz[2][1]] [niz[2][2]]

Prolazak kroz višedimenzionalne nizove

Kako dvodimenzionalni niz predstavlja niz jednodimenzionalnih nizova prvo treba proći kroz taj niz for-each petljom. Element kojom se pristupa for-each petljom je takođe niz tako da nam je potrebna još jedna petlja za prolaz kroz taj niz i za dobijanje pojedinačnih elemenata. Da bi se za niz od x dimenzija pristupilo pojedinačnom elementu potrebno je x for petlji.

Primer:
  • Inicijalizovani dvodimenzionalni niz, proći kroz njeg običnom for petljom i ispisati elemente.
Kod:
public class HelloWorld{

     public static void main(String []args){
        int[][] niz = {{1,2,3},{4,5,6},{7,8,9}}; 
        for(int i = 0; i < niz.length; i++){
           // niz[i] predstavlja niz od tri elementa npr. {1, 2, 3}
            for(int j = 0; j < niz[i].length; j++) {
                System.out.println(niz[i][j]);
            }
             System.out.println("");
        }
        
     }
}
Ispis:
1
2
3

4
5
6

7
8
9
  • Inicijalizovani dvodimenzionalni niz, proći kroz njeg for-each petljom i ispisati elemente.
Kod:
public class HelloWorld{

     public static void main(String []args){
        int[][] niz = {{1,2,3},{4,5,6},{7,8,9}}; 
        for(int[] nizTriBroja : niz){
            for(int broj : nizTriBroja){
                System.out.println(broj);
            }
            System.out.println("");
        }
     }
}
Ispis:
1
2
3

4
5
6

7
8
9
Prethodna lekcija
Sledeća lekcija
Share

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *