View Full Version : [JAVA] problema con arraylist
blackguardian
31-01-2010, 18:46
salve ho un problema
io uso questo for per scandire un array
for(Case c : casi ) {
}
dove Case è un oggetto e casi è il mio array di oggetti Case
ma se il mio vettore casi fosse un arraylist invece che un array semplice come dovrei fare? e nel caso fosse un Vector? grazie
Ciao, il for-each funziona tranquillamente con tutti i tipi che implementano l'interfaccia List.
Quindi qualsiasi sia :
List<Case> casi = new ArrayList<Case> oppure new LinkedList<Case> puoi usare il for-each.
bye
blackguardian
01-02-2010, 15:15
e il codice com'è?
banryu79
01-02-2010, 15:46
e il codice com'è?
Di cosa, del ciclo for-each? Identico a quello che hai postato nel primo messaggio.
Alla fine il for-each è "zucchero sintattico": dietro le quinte usa l'iterator della collezione coinvolta nel ciclo.
Qualsiasi oggetto che sia un'implementazione dell'interfaccia java.util.Iterable<E> (e che quindi implementi il metodo per restituire un iteratore su se stessa) può essere scorso con il for-each.
Per esempio, scorrere una List in tre modi: ciclo for "classico", iteratore, cilco "for-each":
List<String> stringhe = new ArrayList<String>();
...riempiamo la lista
[1] ciclo for
for(int i=0; i<stringhe.size(); i++) {
String s = stringhe.get(i);
... fai qualcosa con s
}
[2a] iterator
Iterator<String> it = stringhe.iterator();
while (it.hasNext()) {
String s = it.next();
... fai qualcosa con s
}
[2b] iterator - in ciclo for
for (Iterator<String> it = list.iterator(); it.hasNext();) {
String s = it.next();
... fai qualcosa con s
}
[3] for-each... iterator camuffato
for (String s : stringhe) {
... fai qualcosa con s
}
blackguardian
02-02-2010, 12:07
nel caso uso Vector com'è il ciclo?
nel caso uso Vector com'è il ciclo?
edito: allora ho detto una stronzata :D
Il foreach funziona con qualsiasi cosa che implementi java.util.Iterable.
blackguardian
03-02-2010, 12:34
quindi anche se uso Vector la forma del ciclo rimane la stessa?
for(Case c : casi ) {
}
quindi anche se uso Vector la forma del ciclo rimane la stessa?
for(Case c : casi ) {
}
yep
blackguardian
03-02-2010, 12:48
un altra cosa...per fare il return di un Vector?? com'è il codice?
ad esempio il mio vector casi di oggetti Case
return.....?
un altra cosa...per fare il return di un Vector?? com'è il codice?
ad esempio il mio vector casi di oggetti Case
return.....?
Vector<Case> funzione()
{
Vector<Case> case = new Vector<Case>();
........
return case;
}
Ciao, il for-each funziona tranquillamente con tutti i tipi che implementano l'interfaccia List. non solo List, anche Iterable (che é estesa da List).
blackguardian
03-02-2010, 13:58
non mi riconosce li al for del Vector il vettore casi
Type mismatch: cannot convert from element type Object to Case
non mi riconosce li al for del Vector il vettore casi
Type mismatch: cannot convert from element type Object to Case
Stai usando un Vector senza tipo Generico? Lo dichiari come ho fatto sopra io o solo
Vector casi
?
blackguardian
03-02-2010, 16:03
Vector casi = new Vector();
Vector casi = new Vector();
E dentro lo riempi solo di Case giusto? A questo punto hai due alternative:
1) o lo fai diventare
Vector<Case> casi = new Vector<Case>();
e non dovresti più avere problemi. Oppure se vuoi continuare con la tua dichiarazione siccome è come se avessi un Vector<Object>
2) fai diventare il for
for(Object obj : casi)
e fai gli opportuni cast, se ce ne è bisogno, all'interno del ciclo.
blackguardian
03-02-2010, 16:46
grazie mille siete dei grandi...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.