Partage
  • Partager sur Facebook
  • Partager sur Twitter

classe bibliothèque en utilisons hashtable

    30 novembre 2015 à 18:46:00

    bonsoir tout le monde , en faite je suis bloquée dans un exercice qui gere une bibliotheque  contenant des livres (classe livre je l'ai deja fait et elle marche biien) bn la classe biblioteque contenant hashtable dont la clé et la langue du livre et chaque element de hastable est un Vector de livres ecrit en une langue

    voici mon essai

    import java.util.*;
    public class Biblio {
    String langue;
    static Vector<Livre> v = new Vector<Livre>();
    static Hashtable<String, Vector> ht=new Hashtable<String,Vector>();
    //ajouter un livre a la bibliotheque
    public static void ajouteLivre(Livre livre,String langue)
    {
    	v.addElement(livre);
    	ht.put(langue,v);
    }
    // affiche tous les livres ecrits en une langue donnee
    public static void chercheLivre(String lang)
    {
    	Enumeration e =ht.elements();
    	while (e.hasMoreElements())
    	{
    		Set<String> cle=ht.keySet();
    		if (cle.equals(lang))
    			System.out.println(e.nextElement());
    	}
    }
    //afficher toutes les langues d un livre
    public static void chercheLangue(Livre livre)
    {
    	Enumeration e =ht.elements();
    	while (e.hasMoreElements())
    	{
    		Set<String> cle=ht.keySet();
    		if (ht.contains(livre))
    			System.out.println(ht.get(cle) +" cle : "+ cle);
    	}
    
    }
    public void listing()
    {
    //faire le listing par langages	
    }
    


     

    • Partager sur Facebook
    • Partager sur Twitter
      1 décembre 2015 à 9:42:43

      Bonjour, Qu'est ce qui ne marche pas?

      -
      Edité par Deyanos 1 décembre 2015 à 9:46:01

      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2015 à 9:44:52

        Salut,

        Du coup ou est le problème ? Erreur ? ...

        @Deyanos, l'utilisation de Vecteur lui permet d'avoir plusieurs livres, listés dans un vecteur, avec une seule clé

        -> a la clé 'français', il aura le vecteur contenant (livre1,livre2).

        Cependant je ne voit qu'un seul Vecteur de crée, je pense qu'il y a un conflit la dessus (TOUS les livres se trouvant alors dans ce vecteur)...

        -
        Edité par BabC 1 décembre 2015 à 9:47:30

        • Partager sur Facebook
        • Partager sur Twitter
          1 décembre 2015 à 11:57:03

          il n'affiche pas les livres d'une certaine langue  (la fonction chercheLivre ne marche pas ) je n'ai pas réussi a parcourir le vecteur qu'est l’élément de hashtable
          • Partager sur Facebook
          • Partager sur Twitter
            1 décembre 2015 à 12:15:49

            j'ai essayé de faire des modification et employer  iterator

            public static void chercheLivre(String lang)
            {
            	 Iterator itValue = ht.values().iterator(); 
            	    Iterator itKey = ht.keySet().iterator();
            	 
            	    System.out.println("Lecture de la HashTable");
            	 
            	    while(itValue.hasNext()){ 
            	    
            	      Vector<Livre> value = (Vector<Livre>)itValue.next();
            	      String key = (String)itKey.next();
            	      if(key.equals(lang))
            	    	  
            	      System.out.println("Key = " + key + " Value = " + value);  
            	
            	
            	}
            }
            • Partager sur Facebook
            • Partager sur Twitter
              1 décembre 2015 à 13:11:40

              Bon alors je viens de tester de mon coté. 

              Si tu fais

               for (String nom : ht.keySet())

              nom va prendre chacune des clés du dictionnaire. 

              ensuite tu peux comparer avec un

               nom.equals(lang)


              comme tu as fait.

              La fonction ht.get(Objet o) te permet de récupérer une valeur associée a la clé donnée en paramètre. 

              ht.get(nom)

              Du coup tu te retrouve avec un vector de livres, tu peux donc refaire la même chose

              for (Livre nom: nomduVecteur)

              Et cette fois ci, nom va devenir a chaque itération une instance du vecteur.

              J’espère avoir bien répondu a ta question x')

              -
              Edité par Deyanos 1 décembre 2015 à 13:17:55

              • Partager sur Facebook
              • Partager sur Twitter

              classe bibliothèque en utilisons hashtable

              × 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