Mappa con Class come chiave
Salve, Qualcuno potrebbe gentilmente spiegarmi il significato di questo in Java:
Map>
In particolare l'esercizio mi chiede : scrivere il codice del metodo Map raggruppaRobotPerTipo() . In particolare questo metodo deve scandire tutto il campo di battaglia ed accumulare i robot di ciascuna tipologia in un insieme associato all'oggetto Class corrispondente alla sua tipologia.
Lo so che detto cosi potrebbe non essere molto chiaro ma è giusto per avere un'idea di quello che fa. Ho cercato online ma non ho trovato molto.
Grazie mille in anticipo.
Map
In particolare l'esercizio mi chiede : scrivere il codice del metodo Map
Lo so che detto cosi potrebbe non essere molto chiaro ma è giusto per avere un'idea di quello che fa. Ho cercato online ma non ho trovato molto.
Grazie mille in anticipo.
Risposte
Di che linguaggio stiamo parlando? Suppongo che ad ogni robot corrisponda una classe per cui devi semplicemente iterare su tutti i robot e aggiungerlo al set corrispondente alla sua classe nella mappa che poi andrai a restituire. Qualcosa tipo (pseudocodice):
for (robot in robots) { resultMap[ robot.class() ].insert(robot); }
Quindi devo solamente aggiungere al set i robot?
Direi che l'idea sembrerebbe quella..
Grazie mille!
In java ho provato a fare questo,
public Map> raggruppaRobotPerTipo() {
Set set = new HashSet();
for(Robot r : this.posizione2robot.values()){
set.add(r);
this.posizione2robot.put(Robot.class,set);
}
return ;
ma non credo sia giusto e non so cosa devo ritornare.Potreste aiutarmi? Grazie in anticipo.
Il titolo dell'esercizio è questo:
scrivere il codice del metodo Map raggruppaRobotPerTipo() nella classe Battlefield. In particolare questo metodo deve scandire tutto il campo di battaglia ed accumulare i robot di ciascuna tipologia in un insieme associato all'oggetto Class corrispondente alla sua tipologia.
public Map
Set
for(Robot r : this.posizione2robot.values()){
set.add(r);
this.posizione2robot.put(Robot.class,set);
}
return ;
ma non credo sia giusto e non so cosa devo ritornare.Potreste aiutarmi? Grazie in anticipo.
Il titolo dell'esercizio è questo:
scrivere il codice del metodo Map
Direi di partire dal valore di ritorno del metodo.. Devi restituire una instanza di Map> per cui direi che la prima cosa da fare sia creare tale istanza (nota che è da tanto che non programmo in Java per cui potrei fare qualche errore di sintassi).
È in questa mappa e non in posizione2robot che devi inserire i robot. In effetti posizione2robot contiene già quei valori (stai iterando su di essa..). La principale difficoltà a questo punto sta nel fatto che la prima volta che incontri una classe devi creare il corrispondente Set. L'idea è di usare qualcosa come segue:
Map<Class, Set<Robot>> result = new Map<Class, Set<Robot>>();
È in questa mappa e non in posizione2robot che devi inserire i robot. In effetti posizione2robot contiene già quei valori (stai iterando su di essa..). La principale difficoltà a questo punto sta nel fatto che la prima volta che incontri una classe devi creare il corrispondente Set. L'idea è di usare qualcosa come segue:
if (!result.containsKey(r.class)) { result.put(r.class, new HashSet<Robot>()); } result.get(r.class).add(r);
sei stato chiarissimo, grazie mille!!