26. Java niz (Array)

 

Kao što je poznato, niz (array) je kolekcija elemenata sličnog tipa koja ima kontinuiranu lokaciju u memoriji.
Java niz (array) je objekt koji sadrži elemente sličnog tipa podataka. To je struktura podataka gdje spremamo slične elemente. U java niz možemo spremiti samo fiksni skup elemenata.
Niz u javi je indeksno zasnovan, prvi element niza je spremljen na indeksu 0.

Prednosti Java niza

 

Nedostaci Java niza

Tipovi nizova u javi
Postoje dva tipa niza.

1 Jednodimenzionalni niz u Javi
Sintaksa deklarisanja niza u Javi

dataType[] arr;  (ili)  
dataType []arr;  (ili)  
dataType arr[];

 

Instancijacija niza u javi

arrayRefVar=new datatype[size];

Primjer jednodimenzionalnog Java niza

Pogledajmo jednostavan primjer Java niza, gdje ćemo deklarisati, instancirati, inicijalizovati i prolaziti kroz niz.

 

class Testarray{  
public static void main(String args[]){  
  
int a[]=new int[5]; //deklaracija i instancijacija  
a[0]=10; //inicijalizacija  
a[1]=20;  
a[2]=70;  
a[3]=40;  
a[4]=50;  
  
//ispisivanje niza  
for(int i=0; i < a.length;i++)  //length (dužina) je osobina niza  
  System.out.println(a[i]);  
 }  
}

Ispis na ekranu: 
10
20
70
40
50

Deklaracija, instancijacija i inicijalizacija java niza

Možemo zajedno deklarisati, instancirati i inicijalizovati java niz ovako:

int a[]={33,3,4,5};  //deklaracija, instancijacija i inicijalizacija

Pogledajmo jednostavan primjer koji ispisuje ovaj niz.

class Testarray1{  
public static void main(String args[]){  
  
int a[]={33,3,4,5};  // deklaracija, instancijacija i inicijalizacija   
  
// ispisivanje niza   
for(int i=0; i < a.length;i++)  // length (dužina) je osobina niza   
  System.out.println(a[i]);  
 }  
}

Ispis na ekranu:
33
3
4
5

 

Prosljeđivanje niza metodu u javi
Možemo proslijediti java niz metodu tako da možemo ponovo upotrijebiti istu logiku na bilo koji niz.
Pogledajmo jednostavan primjer nalaženja najmanjeg broja u nizu pomoću metoda.

class Testarray2{  
static void min(int arr[]){  
int min=arr[0];  
for(int i=1; i < arr.length;i++)  
 if(min>arr[i])  
  min=arr[i];  
  
System.out.println(min);  
}  
  
public static void main(String args[]){  
  
int a[]={33,3,4,5};  
min(a);  //prosljeđivanje niza metodu  
 }  
}

Ispis na ekranu:
3

2 Višedimenzionalni niz u javi
U ovom slučaju, podaci su pohranjeni po indeksu na osnovu reda i kolone (takođe poznato kao matrična forma).
Sintaksa deklarisanja višedimenzionalnog niza u javi

dataType[][] arrayRefVar;  (ili)  
dataType [][]arrayRefVar;  (ili)  
dataType arrayRefVar[][];  (ili)  
dataType []arrayRefVar[];


Primjer instanciranja višedimenzionalnog niza u javi

  int[][] arr=new int[3][3];  //3 reda i 3 kolone  

Primjer inicijalizovanja višedimenzionalnog niza u javi

arr[0][0]=1;  
arr[0][1]=2;  
arr[0][2]=3;  
arr[1][0]=4;  
arr[1][1]=5;  
arr[1][2]=6;  
arr[2][0]=7;  
arr[1][2]=8;  
arr[2][0]=9;

Primjer višedimenzionalnog java niza
Pogledajmo jednostavan primjer deklarisanja, instanciranja, inicijalizovanja i ispisivanja dvodimenzionalnog niza.

class Testarray3{  
public static void main(String args[]){  
  
//deklarisanje i inicijalizovanje 2D niza  
int arr[][]={{1,2,3},{2,4,5},{4,4,5}};  
  
//ispisivanje 2D niza  
for(int i=0; i < 3; i++){  
 for(int j=0; j < 3; j++){  
   System.out.print(arr[i][j]+" ");  
 }  
 System.out.println();  
 }  
 }  
}

Ispis na ekranu: 
1 2 3
2 4 5
4 4 5

Koje je ime klase java niza?
U javi, niz (array) je objekt. Za array objekt, kreirana je proxy klasa čije se ime može dobiti pomoću getClass().getName() metoda na objekt.

class Testarray4{  
public static void main(String args[]){  
  
int arr[]={4,4,5};  
  
Class c=arr.getClass();  
String name=c.getName();  
  
System.out.println(name);  
 }  
}

Ispis na ekranu: 
I

Kopiranje java niza
Možemo kopirati jedan niz u drugi pomoću metoda arraycopy klase System.
Sintaksa arraycopy metoda
public static void arraycopy( 
Object src, int srcPos,Object dest, int destPos, int length 
)
Primjer arraycopy metoda

class TestArrayCopyDemo {  
    public static void main(String[] args) {  
        char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',  
                'i', 'n', 'a', 't', 'e', 'd' };  
        char[] copyTo = new char[7];  
  
        System.arraycopy(copyFrom, 2, copyTo, 0, 7);  
        System.out.println(new String(copyTo));  
    }  
}

Ispis na ekranu: 
caffein

Sabiranje 2 matrice u javi
Pogledajmo jednostavan primjer sabiranja dve matrice.

class Testarray5{  
public static void main(String args[]){  
//kreiranje dve matrice  
int a[][]={{1,3,4},{3,4,5}};  
int b[][]={{1,3,4},{3,4,5}};  
  
//kreiranje druge matrice u koju se sprema suma dve matrice  
int c[][]=new int[2][3];  
  
//sabiranje i ispis zbira 2 matrice  
for(int i=0; i < 2;i++){  
  for(int j=0; j < 3;j++){  
    c[i][j]=a[i][j]+b[i][j];  
    System.out.print(c[i][j]+" ");  
  }  
  System.out.println(); //novi red  
 }  
 }  
}

Ispis na ekranu:  
2 6 8
6 8 10

 

Zadaci iz ovog poglavlja    Objektno orijentisano programiranje u Javi    Index