Perchè ad un contenitore di tipo Map non posso applicare un Iterator? E se lo volessi scandire come faccio?
Perchè ad un contenitore di tipo Map non posso applicare un Iterator? E se lo volessi scandire come faccio?
Ciao; allora puoi recuperarti un Set di "keys" del Map e poi prendere l'iterator su di esso; ad esempio:
Non l'ho provato ma ad occhio dovrebbe andare.codice:Map theMap = new HashMap(); theMap.put( "uno","1" ); theMap.put( "due","2" ); theMap.put( "tre","3" ); theMap.put( "quattro","4" ); String key = null; String obj = null; for( Iterator i = theMap.keySet().iterator(); i.hasNaext(); ){ key = (String)(i.next()); System.out.println( "Chiave: "+ key ); obj = (String)theMap.get( key ); System.out.println( "Elemento: "+ obj ); }
Ciao
Se vuoi trovare l'arcobaleno, devi sopportare la pioggia
La soluzione è correta e ti ringrazio, ma volevo capire una cosa: Iterator non è applicabile direttamente sulla HashMap? Devo sempre estrarmi un insieme per poter applicare Iterator?
Grazie.
Ciao; sì è come dici; devi ricavarti un insieme per poter scorre il Map; penso che questo sia dovuto al fatto che se applicassi direttamente l'Iterator al Map... cosa dovrebbe tirarti fuori?
Nel senso che l'Iterator dovrebbe contenere un insieme delle chiavi del Map o un insieme degli oggetti contenuti nel Map? Poi per il tuo caso potrebbe andare bene, ad esempio, un insieme di chiavi; per qualcun altro o anche per te, in una situazione futura, potrbbe non andar bene che ti cacci le chiavi ma vorresti un insieme dei valori... quindi penso che, alla Sun, abbiano lasciato stare questa soluzione.... almeno questa è la spiegazione che mi do
Ciao
Se vuoi trovare l'arcobaleno, devi sopportare la pioggia