Објектно орјентисано
програмирање
Владимир Филиповић
vladaf@matf.bg.ac.rs
Александар Картељ
kartelj@matf.bg.ac.rs
Низови у програмском
језику Јава
Владимир Филиповић
vladaf@matf.bg.ac.rs
Александар Картељ
kartelj@matf.bg.ac.rs
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 3 /
- Низ се дефинише као група променљивих истог типа које се појављују под заједничким именом.
- Низовни тип података у Јави има следећа својства:
- садржи линеарно уређен, унапред познат, број чланова,
- сви чланови су истог типа и имају заједничко име; чланови могу бити примитивног или објектног типа,
- сваком члану приступа се помоћу заједничког имена низа и индекса члана,
- сви индекси су целобројног типа,
- сви чланови низа се третирају као посебне променљиве (називају се и индексним променљивим ).
Низови у Јави
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 4 / Синтакса низовног типа се дефинише на следећи начин: Низовни тип у Јави је увек објектни тип, тј. низ је увек објекат.
Низови у Јави (2)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 5 / Низовна променљива се декларише у делу програма за декларацију. При томе се могу задати и вредности члановима низа.
Низови у Јави (3)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 6 /
- Додељивање почетних вредности (иницијализација) члановима низа врши се у делу декларације названом nizInit.
- Синтакса наредбе за алокацију меморије је следећа:
Низови у Јави (4)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 7 / Елементима низа (индексним променљивима) приступа се помоћу индекса. Са индексним променљивима оперише се на исти начин као и са променљивима без индекса. Дакле, вредности индексних променљивих се могу мењати помоћу наредбе додељивања и користити у изразима.
Низови у Јави (5)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 8 / Једнодимензионални за приступ елементима користи тачно један индекс. 53 - (^7 563) ……. 37 a[0] a[1] a[2] ……. a[99] “Ana” “Pera” “Mila”
…
nis[0] nis[1] nis[20]
Једнодимензионални низ
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 9 / Декларисање низова (постоје два начина): Пример. int pozicija []; String niska []; Knjiga naslov []; // Iste deklaracije na drugi način int [] pozicija ; String [] niska ; Knjiga [] naslov ; Уочава се разлика између ове две врсте декларација: int [] a , b , zzz ; // sve 3 promenljive a, b i zzz se deklarisu kao //nizovne int a , b , zzz []; // samo zzz se deklarise kao nizovna promenljiva
Једнодимензионални низ (2)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 10 /
Креирање низова
- Постоје два начина: (1) помоћу оператора new, (2) набрајањем чланова
Пример.
Point [] tacke = new Point [ 20 ]; // prvi nacin
int [] brojac = new int [ 100 ]; // prvi nacin
// Sledi drugi nacin kreiranja
String godDoba [], s = “mika” ;
godDoba ={ “prolece” , s , “leto” , “jesen” , “zima” };
int celi [] = { 23 , 46 , - 123 , 17 , 36 , - 12 };
Једнодимензионални низ (3)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 11 / Приступ члановима низа
- Нумерисање чланова низа увек почиње од 0.
- Члановима низа се приступа помоћу: ImeNiza[indeks]
- ImeNiza – име које се појављује у декларацији
- indeks – целобројни литерал или израз
Пример.
int [] brojac = new int [ 100 ];
String [] godDoba ={ “prolece” , “leto” , “jesen” , “zima” };
...
brojac [ 50 ]= 2 ; // Ne bi valjalo: brojac[100] = 3;
a = brojac [ i + j ];
x = godDoba [ 3 ];
Једнодимензионални низ (4)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 12 / Дводимензионални низ чине елементи истог типа и сваком од њих приступа се помоћу имена низа и два индекса. Више једнодимензионалних низова се могу поређати један испод другог као на следећој слици:
Дводимензионални низ
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 13 / Индексирање употребом два индекса. Дводимензионални низ представља једнодимензионални низ чији елементи су једнодимензионални низови.
Дводимензионални низ (2)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 14 /
- Декларацију имена низа можемо да извршимо на два начина: int m , a [][]; // prvi nacin int [][] c , b ; //drugi nacin
- Након декларације низовне променљиве, креирамо низовни објекат, тј. вршимо резервисање меморијског простора за смештање чланова низа: a = new int [ 50 ][ 100 ];
- Овом наредбом је резервисано 5000 целобројних локација у меморији.
- Декларацију низовне променљиве и резервисање меморијског простора могли смо извршити једном наредбом, тј. могли смо писати: int a [ ][ ] = new int [ 50 ][ 100 ];
Дводимензионални низ (3)
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 15 /
- Дводимензионални низови представљају један, најчешће коришћен, случај вишедимензионалних низова.
- За низове чији је број димензија већи од два, принцип рада је потпуно исти као и са дводимензионалним низовима.
- Дакле, као што су формирани дводимензионални низови, на исти начин се могу формирати тродимензионални, четвородимензионални итд.
- Већ смо уочили да оперисање са матрицама можемо свести на оперисање са једнодимензионалним низовима, то важи и за све вишедимензионалне низове.
Вишедимензионални низ
Математички факултет (^) {vladaf, vladaf@matf.bg.ac.kartelj}@matf.bg.ac.rs rs 16 /