|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
|
[Java] Problema esplorazione Map contenente una Linked List
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>(); 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");
}
__________________
ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB ![]() |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Quote:
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); |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2008
Città: Seattle (WA)
Messaggi: 306
|
Non ho ben capito la domanda ma questo potrebbe chiarirti le idee....
Codice:
for(LinkedList<String> amici : mapPersone.values()) {
for(String amico : amici) {
System.out.println("Amico:"+amico;);
}
}
oppure
for(GruppoAmici gruppo : mapPersone.keySet()) {
System.out.println("Gruppo: "+gruppo);
for(String amico : mapPersone.get(gruppo)) {
System.out.println(" Amico:"+amico);
}
}
__________________
"Considerate la vostra semenza fatti non foste a viver come bruti ma per seguir virtute e canoscenza" Ultima modifica di mone.java : 01-08-2013 alle 15:36. Motivo: edit mi sono accorto che la chiave è di tipo GruppoAmici e non string |
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Apr 2006
Città: Trieste
Messaggi: 3494
|
Grazie mille per le risposte!!
Quote:
Quote:
__________________
ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB ![]() |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:29.











ASUS PB278Q - Corsair Carbide 500R Black - Thermaltake ToughPower 750W - Intel i7-4790 (Cooled by Corsair Liquid H80i) - ASRock Z97 Extreme 4 - MSI GTX 950 Gaming 2G - 16GB Corsair Vengeance Pro 1600MHz - Samsung SSD 840 Pro 256GB 









