Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    27

    [Java]Problema HashMap...contains(Key) da null, ma se chiamo keySet() key è presente!

    Scusate, sto impazzendo con un HashMap;
    Mi sono creato un hashMap e ho provato a stamparlo per vedere se era corretto!...e va tutto bene!!!
    Poi sono andato a farfe una get e mi dice che la chiave (k) non esiste lanciandomi una NullPointerException!!!...infatti se vado ad invocare contains(k) mi restituisce null!
    Allo stesso tempo se vado a invocare il metodo keySet(), tra le chiavi ci trovo K che invece sembra non esistere invocando la contains(K).
    Com'è possibile?
    grazie mille

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java]Problema HashMap...contains(Key) da null, ma se chiamo keySet() key è presente!

    Originariamente inviato da db10
    una get e mi dice che la chiave (k) non esiste lanciandomi una NullPointerException!!!
    Se la chiave non esiste, get() ritorna un null ... non lancia NullPointerException!

    Originariamente inviato da db10
    infatti se vado ad invocare contains(k) mi restituisce null!
    Non esiste un contains() .... esiste un containsKey() che comunque ha come tipo di ritorno un boolean ..... non certo un reference!

    Originariamente inviato da db10
    Allo stesso tempo se vado a invocare il metodo keySet(), tra le chiavi ci trovo K che invece sembra non esistere invocando la contains(K).
    Com'è possibile?
    Fino a questo punto hai spiegato le cose in modo poco chiaro e molto dubbio .... posta il codice.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    27

    Re: Re: [Java]Problema HashMap...contains(Key) da null, ma se chiamo keySet() key è presente!

    Originariamente inviato da andbin
    .... posta il codice.
    codice:
    Map<key,value> hm=creationHashMap();
    key k=...
    System.out.println(hm.containsKey(k)); //restituisce false
    Iterator<key> it=setKey.iterator();  //scandisco l'insieme di chiavi dell'hashap
    while(it.hasNext()){
        key1=it.next();
        System.out.println(hm.get(key1)); //quando scandisce setKey e arriva alla chiava k restituisce true
    }
    ps se invoco il metodo keySet() è presente la chiave K, mentre la containsKey(K) mi restituisce false!!!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: [Java]Problema HashMap...contains(Key) da null, ma se chiamo keySet() key è presente!

    Originariamente inviato da db10
    codice:
    Map<key,value> hm=creationHashMap();
    key k=...
    System.out.println(hm.containsKey(k)); //restituisce false
    Iterator<key> it=setKey.iterator();  //scandisco l'insieme di chiavi dell'hashap
    E quel 'setKey' da dove arriva???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    27

    Re: Re: Re: Re: [Java]Problema HashMap...contains(Key) da null, ma se chiamo keySet() key è presente

    Originariamente inviato da andbin
    E quel 'setKey' da dove arriva???


    no tranquillo, quello è un Set di oggetti che corrispondono alle mie chiavi...nn ti preoccupare da dove arriva, anche perchè da come ho detto quando faccio la stampa dei valori associati alle chiavi me li stampa correttamente.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Bene, ma 'key' che cosa è realmente? Cioè le chiavi che tipo di oggetti sono???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    27
    Originariamente inviato da andbin
    Bene, ma 'key' che cosa è realmente? Cioè le chiavi che tipo di oggetti sono???
    Non sono tipi standard...sono degli oggetti creati da me!
    ...ma il problema è che ho provato anche a mettere a posto di questi oggeti delle stringhe e mi restituisce sempre null!!!

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da db10
    Non sono tipi standard...sono degli oggetti creati da me!
    Ecco il punto .... hai fatto l'override di equals()/hashCode() nella classe della "tua" chiave in modo appropriato per rispettare il "contratto" che ci deve essere tra questi due metodi???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.