Quote:
Originariamente inviato da <^MORFEO^>
Salve a tutti
Ho un problema (probabilmente banale) per l'esplorazione degli elementi di una Map per un programma in Java...
In particolare io ho dichiarato la seguente struttura dati:
Codice:
Map<GruppoAmici, LinkedList<String>> mapPersone = new HashMap<GruppoAmici, LinkedList<String>>();
LinkedList<String> nomiPersone = new LinkedList<String>();
"GruppoAmici" (posso averne più di uno) è un oggetto che mi permette di creare nuovi amici a cui assegno un nome, questo nome va inserito nella "nomiPersone".
Bene, come faccio io a stamparmi e visualizzare per un determinato "GruppoAmici" singolarmente (cioè nome per nome in oggetti stringa separati) la lista dei nomi dei presenti in quel gruppo?
In particolare, quando vado a creare un nuovo amico di nome Mario per quel "GruppoAmici" io voglio verificare che non vi sia già presente un amico di nome Mario all'interno di "nomiPersone".
Quindi assegnato un "GruppoAmici" voglio poter esplorare ed estrarre singolarmente tutti gli elementi che compongono la Linked List associata a quel "GruppoAmici"
Ho scritto questo codice ma non mi permette di esplorare singolarmente tutti gli elementi della Linked List...
Codice:
Set<Map.Entry<GruppoAmici, LinkedList<String>>> set = mapPersone.entrySet();
Iterator<Map.Entry<GruppoAmici, LinkedList<String>>> i = set.iterator();
while(i.hasNext()){
Map.Entry<GruppoAmici, LinkedList<String>> letto = i.next();
System.out.println("Singolo elemento letto: "+letto + "\n");
}
mi torna la Linked List come elemento unico e non magari come ArrayList di stringe o singole stringhe 
|
Non puoi ottenere la linked list relativa alla determinata Key che gli dai in pasto, e poi iterare su di essa per ottenere i suoi valori?
Ora non sono un gran conoscitore del java, ma spulciando la relativa api mi suona strano che tu non possa fare una cosa tipo:
Codice:
GruppoAmici gruppoAmici = new GruppoAmici(); // o qualsiasi altro costruttore la classe abbia
LinkedList<String> nomiPersone = mapPersone.Get(gruppoAmici);
Quindi iterare su nomiPersone per ottenere ogni singola stringa nome.