PDA

View Full Version : [java]scorrere arrayList di oggetti,confrontando al suo interno certi campi, for?


marius84
30-05-2009, 09:41
ciao a tutti.. sto realizzando un progetto per l'università..

ho diverse classi che al loro interno hanno un arrayList per gestire una sorta di archivio..

in alcune classi ho la necessita di scorrere e verificare o trovare qualche oggetto negli arraylist, confrontando i campi dell'oggetto (esempio il nome, la matricola, ecc..)

in tutti i metodi ho usato sempre il ciclo for, in questa maniera:

metodo(String nome... ecc..){

for(int i=0;i<ARRAYLISTUSATO.size();i++)
if(ARRAYLISTUSATO.get(i).getNome().equals(nome in input))
fai qualcosa...;
fai altro;

}


è giusto scorrere così gli array list?
cioè nel caso peggiore, il mio oggetto è l'ultimo elemnto dell'arrayList, e quindi lo dovrei scorrere tutto..
c'è qualcosa che non mi convince...

PGI-Bis
30-05-2009, 10:34
E' ineccepibile.

marius84
30-05-2009, 11:31
perchè ho visto su alcuni testi che usano iterator... e non so bene a cosa serve, o se è piu prestante..

wingman87
30-05-2009, 12:25
Nel caso dell'ArrayList va bene anche così perché è implementato come un array circolare e quindi l'accesso all'elemento i-esimo richiede un tempo costante e non è necessario prima scorrere tutti i precedenti.

Don[ITA]
30-05-2009, 12:33
Puoi anche fare una cosa del genere (che io preferisco):

ArrayList<Item> arr;
...lo riempi ecc...

for(Item i : arr) //che si traduce esattamente in "per ogni Item i in arr"
if(i.getNome().equals("pinco pallino"))
...fai qualcosa...

...ecc ecc...

marius84
30-05-2009, 12:51
interessante,provo subito