Stranica: 1/1.

Pitanje oko tmp: [java]

Postano: 29 kol 2014, 21:35
Postao/la MarkoN
Da li neko zna kako ovo tacno funkcionise:
for (Vozilo tmp : listaVozila) {
if (tmp.getNaziv().equals(naziv)) {

ovo tmp mi bas nije jasno.

Kod: Označi sve

else if (sifra.equals("") && !naziv.equals("")) {
            for (Vozilo tmp : listaVozila) {
                if (tmp.getNaziv().equals(naziv)) {
                    rezultat += "\n" + tmp.toString();
                    nadjen = true;
                }
Unapred hvala!

Re: Pitanje oko tmp: [java]

Postano: 29 kol 2014, 22:23
Postao/la PunkBastard
"tmp" je varijabla ? (retoričko pitanje)

Re: Pitanje oko tmp: [java]

Postano: 30 kol 2014, 11:49
Postao/la ante003
MarkoN je napisao/la:Da li neko zna kako ovo tacno funkcionise:
for (Vozilo tmp : listaVozila) {
if (tmp.getNaziv().equals(naziv)) {

ovo tmp mi bas nije jasno.

Kod: Označi sve

else if (sifra.equals("") && !naziv.equals("")) {
            for (Vozilo tmp : listaVozila) {
                if (tmp.getNaziv().equals(naziv)) {
                    rezultat += "\n" + tmp.toString();
                    nadjen = true;
                }
Unapred hvala!

Znaci, u svojoj listi imas nekoliko objekata koji su tipa Vozilo.

For petlja koja je gore se jos naziva foreach petlja koja je malo drugacija od for petlje, ali ideja je ista i sluzi za iteriranje kroz svaki element liste.

Znaci,
obicna petlja bi isla nekako ovako:

Kod: Označi sve

int len = listaVozila.length;
for(int i = 0; i < len; i++){
   Vozilo tmp = listaVozila.get(i);
   doSomethingElse();
}
U gornjem primjeru imas "obicnu" for petlju koja ide o listi, ali sa svakog i-tog mjesta dohvaca objekt tipa Vozilo. Ako si ikad radio u C++u, to mozes poistovjetiti sa ovim:

Kod: Označi sve

int niz[] = new int [N];
for (int i = 0; i < N;i++)
   cout << niz[i]<<endl;
gdje je N neki prirodan broj.

For petlja koja tebe zanima je skracena verzija "obicne" i ona zapravo radi ovo:

Kod: Označi sve

for(Vozilo tmp: listaVozila) 
umjesto da imas iterator i, ovdje ti se for petlja sama brine gdje se nalazi iterator, i u svakom koraku vrati objekt. Znaci, gore si imao

Kod: Označi sve

Vozilo tmp = listaVozila.get(i)
ovdje imas samo Vozilo tmp: listaVozila koje zamjenjuje get metodu.

Python ima slicnu stvar, samo se tamo zove operator "in". I onda mozes imati slucaj:

Kod: Označi sve

for tmp in listaVozila:
   doSomething
Gdje na pocetku tmp bude prvi element, pa u sljedecoj iteraciji drugi, itd. ali ono sto je bitno da se sama for petlja brine o dohvacanju elementa, dok u "obicnoj" for petlji, to moras raditi ti.

Evo, nadam se da je sad malo jasnije.

Re: Pitanje oko tmp: [java]

Postano: 30 kol 2014, 12:59
Postao/la MarkoN
Hvala,dosta mi je sada jasnije. :)

Re: Pitanje oko tmp: [java]

Postano: 30 kol 2014, 20:10
Postao/la ante003
Super :)