Strutture: Mappa (o dizionario)

di il
18 risposte

18 Risposte - Pagina 2

  • Re: Strutture: Mappa (o dizionario)

    e in effetti quando vado a debuggare nella mappa c'è solo una voce...
    Devo associare all'hotel una nuova struttura (array o arrayList) che contiene le stanze?
    Si, mi rispondo da solo...
    Il metodo put() aggiunge un associazione inesistente e qualora questa esistesse ne soprascrive il valore
  • Re: Strutture: Mappa (o dizionario)

    antomau96 ha scritto:


    Il metodo put() aggiunge un associazione inesistente e qualora questa esistesse ne soprascrive il valore
    Se la chiave non è trovata nel HashMap, put() aggiunge una nuova associazione. Se la chiave viene trovata nel HashMap, aggiorna la associazione togliendo il vecchio valore (che put poi restituisce) e rimpiazzandolo con il nuovo valore.

    Ma in HashMap il concetto di poter ritrovare la chiave, lo ripeto, è legato a equals/hashCode degli oggetti "chiave".
  • Re: Strutture: Mappa (o dizionario)

    andbin ha scritto:


    Ma in HashMap il concetto di poter ritrovare la chiave, lo ripeto, è legato a equals/hashCode degli oggetti "chiave".
    Si, però il mio compito e' cercare un valore (in questo caso una stanza):
    -fintanto che la mappa contiene una chiave
    - se tale stanza e' contenuta nell'hotel (chiave)
    - stampo i dati della stanza e dell'hotel (valore e chiave)
    - se la stanza non e' contenuta
    - itero la mappa

    ovviamente il problema e' che se ad ogni put() mi sostituisce il valore tutta la struttura mappa non serve ad un bel niente allora associo ad ogni chiave una lista...
    Per quanto riguarda le prestazioni un hotel può contenere al massimo 5 tipologie di stanza (ciò' e' vero solo nel mio caso perche' in teoria, matematicamente parlando, ne potrebbe contenere 2^4=16)

  • Re: Strutture: Mappa (o dizionario)

    Ho risolto e tutto funziona per il meglio...

    Volevo chiedere una cosa:
    sto studiando filtri di ricerca ma non so se quello che io ho compreso sia corretto o meno

    1) Ho il manager della struttura che si occupa di inserire, rimuovere e compiere operazioni sui dati
    2) tale classe crea quindi sia la LinkedList sia la HashMap

    Adesso, devo cercare gli Hotel che abbiano una stanza ad un prezzo inferiore ai 50 euro:

    creo un metodo per la ricerca all'interno della classe manager che prenda i parametri da ricercare
    ottengo il keyset della mappa
    scorro la lista e trovo i dati
    creo una stringa contenente del codice html che definisca una tabella da impostare come argomento di una JLabel.
    Questo metodo così implementato puo' essere definito un filtro di ricerca oppure il metodo deve compiere operazioni diverse / trovarsi in un'altra classe?

    Non so se la soluzione corretta possa essere inserire il filtro di ricerca direttamente nella classe che definisce l'oggetto....

    P.S.:
    Ovviamente adesso anche la lista concatenata dovrà avere i metodi hashCode() e equals(), vero?
Devi accedere o registrarti per scrivere nel forum
18 risposte