PDA

View Full Version : [JAVA] Problema HashMap (Urgente!)


Lief
09-02-2012, 09:19
Ciao a tutti. Da poco ho cambiato scuola e mi sono ritrovato nella programmazione Java. Pian piano sto recuperanto l'anno perduto ma capita che mi vengano dei dubbi e non ho ancora avuto il tempo di finire le guide.
in questo caso devo fare un esercizio sulle HashMap nel quale
Memorizzare in una HashMap i dati di 100 persone e per ogni persona: codice fiscale, nome, cognome, sesso, età.
1. Leggiamo l'HashMap e calcoliamo la media dell'età per ogni sesso.
2. Dare in input 3 codFiscali e stampare quello con l'età più alta.

so che non risolvete interi esercizi ma a me servirebbe solo un aiuto nel 1 punto.
ho messo l'intero esercizio solo per dare un'idea generale...
fin'ora ho scritto la classe con i metodi get e set e nel main ho messo il ciclo for con tutti i JOptionPane... inoltre non so se influisce ma uso NetBeans.
in particolare vorrei sapere come leggere l'hashmap e distinguere la media in base al sesso (M/F)

Grazie a chiunque di voi mi voglia dare una mano.

PGI-Bis
09-02-2012, 09:43
Le mappe java associano chiavi a valori.

Diciamo che la chiave è il codice fiscale (è l'unica roba univoca in quelle persone).

La mappa sarà:

Map<String, Persona> map = new HashMap<>()

Per ficcarci i dati usi il metodo put(chiave, valore):

Persona p = new Persona( i dati della persona)
map.put(p.getCodiceFiscale(), p);

e vai di putput

Per far qualcosa su ogni elemento della mappa hai due metodi: uno che legge solo i valori (cioè le persone) e uno che legge le coppie chiave-valore.

Per il punto 1 a te interessa quello che scorre i valori:

for(Persona p : map.values()) {
...
}

Per il punto 2 essendo il codice fiscale chiave dei valori nella nostra ipotetica mappa, dirai:

Persona p0 = map.get(codice0);
Persona p1 = map.get(codice1);
Persona p2 = map.get(codice2);

Lief
10-02-2012, 10:53
grazie... così oggi completerò il programma... spero solo di riuscire ad interpretere come va fatto, sono ancora un principiante e molte cose che hai detto mi appaiono oscure...
comunque cercherò di arrangiarmi almeno fino a quando non avrò finito di leggere le varie guide