View Single Post
Old 01-08-2013, 15:15   #2
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da <^MORFEO^> Guarda i messaggi
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.
[Kendall] è offline   Rispondi citando il messaggio o parte di esso