Partage
  • Partager sur Facebook
  • Partager sur Twitter

Hashtable qui ne fonctionne pas

Sujet résolu
    28 janvier 2012 à 10:35:20

    Bonjour !

    J'ai une hashtable et elle ne fonctionne pas du tout.
    Un petit exemple pour mieux m'expliquer :

    Hashtable<String, Integer> table = new Hashtable<String, Integer>();
    table.put("test", 1);
    
    if(table.contains("test"))
    {
    	System.out.println("fonctionne");
    }
    else
    {
    	System.out.println("ne fonctionne pas");
    }
    


    Le résultat obtenu est :
    ne fonctionne pas


    Je ne comprend vraiment pas ce qui se passe. Pouvez-vous m'aider ?
    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      28 janvier 2012 à 10:40:47

      Tu as inversé la clé et la valeur à entré.
      • Partager sur Facebook
      • Partager sur Twitter
        28 janvier 2012 à 10:57:00

        Pourtant eclipse me donne le prototype de Hashtable.put() :
        put(String key, Integer value)
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          28 janvier 2012 à 11:14:12

          contains c'est pour la value, "test" est une key, pas une value.
          • Partager sur Facebook
          • Partager sur Twitter
            28 janvier 2012 à 11:50:26

            Ah oui, j'ai lu trop vite et j'ai pensé que "test" était la valeur.
            • Partager sur Facebook
            • Partager sur Twitter
              28 janvier 2012 à 12:40:25

              D'autre part, Hashtable est déprécié depuis Java 2 (1998) et l'arrivée du framework Collections. Il vaut mieux utiliser les Map.
              • Partager sur Facebook
              • Partager sur Twitter
                28 janvier 2012 à 14:35:46

                C'est que moi je me fis à ce qui est écrit dans le tutoriel Java, et puis dans le code il ne me le barre pas en disant que c'est déprécié pourtant. Enfin bref, avec containsKey ça marche mieux, merci ! :)
                • Partager sur Facebook
                • Partager sur Twitter
                  28 janvier 2012 à 14:40:25

                  Ce n'est pas parce que c'est écrit dans un tuto que c'est la vérité absolue, hein.

                  http://java.developpez.com/faq/java/?p [...] IONS_info_map
                  Ce n'est pas supprimé pour des raisons de rétro-compatibilité du cœur du langage.

                  De plus, ce conseil concernant Vector s'applique aussi à Hashtable pour les mêmes raisons : http://java.developpez.com/faq/java/?p [...] CTIONS_vector
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 janvier 2012 à 14:42:17

                    Mais pourquoi la classe n'est pas considéré comme déprécié (barré sous eclipse) ?
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      28 janvier 2012 à 14:43:02

                      Citation : Lattyange

                      C'est que moi je me fis à ce qui est écrit dans le tutoriel Java, et puis dans le code il ne me le barre pas en disant que c'est déprécié pourtant. Enfin bref, avec containsKey ça marche mieux, merci ! :)



                      Plutot que de te fier a ce tuto, la javadoc est quand même un peu plus fiable:

                      Citation : javadoc

                      As of the Java 2 platform v1.2, this class was retrofitted to implement the Map interface, making it a member of the Java Collections Framework. Unlike the new collection implementations, Hashtable is synchronized. If a thread-safe implementation is not needed, it is recommended to use HashMap in place of Hashtable. If a thread-safe highly-concurrent implementation is desired, then it is recommended to use ConcurrentHashMap in place of Hashtable.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 janvier 2012 à 17:51:39

                        Malheureusement, la javadoc est en anglais. :euh:
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Hashtable qui ne fonctionne pas

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown