IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[debutante]Message sur un portable


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut [debutante]Message sur un portable
    Bonjour,

    Je dois définir une méthode statique qui étant donnée une table de hachage et une chaîne codée rend le vecteur des chaînes correspondant.

    J'ai déja défini une méthode qui rend une chaîne codée (où les lettres sont remplacées par des chiffres):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public static String getChaine(String s){
    		String r = "";
    		for (int i = 0; i < s.length(); i++){
     
    		}
    		return r;
    	}
    mais je sais plus ce que je dois mettre dans "for";
    Quelqu'un peut m'expiquer un peu ces notions de hachage et de vector svp;
    Merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par selvie Voir le message
    mais je sais plus ce que je dois mettre dans "for";
    Ca c'est à toi de nous le dire: ma boule de cristal présente des signes de faiblesse en ce moment

    Citation Envoyé par selvie Voir le message
    Quelqu'un peut m'expiquer un peu ces notions de hachage et de vector svp;
    un Vector est une liste d'ojets (informatiques). D'ailleurs depuis maintenant quelques temps, cette classe est à oublier au profit des "List" qui font la même chose en mieux.

    Une table de hashage est un type particulier de liste d'objets dans lequel chaque objet est référencé par une clé unique. Cette clé permet d'accéder très rapidement aux objets:

    clé1 -> objet1
    clé2 -> objet2

    Si tu demandes à ta table l'objet référencé par clé1, la table te renverra "objet1".

    Mais ceci constituant les bases du langage, va voir du côté des cours/tutoriaux!
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre émérite

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Par défaut
    bonjour,

    Essai de chercher par la :

    http://javasearch.developpez.com/j2s...Hashtable.html

    bonne chance et a +

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Citation Envoyé par selvie Voir le message
    Je dois définir une méthode statique qui étant donnée une table de hachage et une chaîne codée rend le vecteur des chaînes correspondant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static String getChaine(String s){}
    1) Ta méthode ne prend pas de table de hachage (java.util.HashMap) en paramètre
    2) Ta méthode ne renvoie pas un vecteur (java.util.List)

    Tu peux reformuler stp ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut
    Bonjour,

    enfait il y a plusieures petites questions dans mon exo et j'ai essayé de les faire petit à petit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    public class TestHashtable {
     
    	public static byte getChiffre(char c) {
     
    		// 2 : abc ; 3 : def ; 4 : ghi ; 5 : jkl ; 6 : mno ; 7 : pqrs; 8 : tuv ; 9 : wxyz	
    		switch (Character.toLowerCase(c)){
    		case 'a': case 'b': case 'c': return 2;
    		case 'd': case 'e': case 'f': return 3;
    		case 'g': case 'h': case 'i': return 4;
    		case 'j': case 'k': case 'l': return 5;
    		case 'm': case 'n': case 'o': return 6;
    		case 'p': case 'q': case 'r': case 's': return 7;
    		case 't': case 'u': case 'v': return 8;
    		case 'w': case 'x': case 'y': case 'z': return 9;
    		default: return 0;
    		}
    	}
     
     
    	public static String getChaine(String s){
    		String r = "";
    		for (int i = 0; i < s.length(); i++){
    			s.getBytes();      // on prend la chaine codée
    		}
    		return r;
    	}
     
    /**
             * Méthode statique qui étant donnée une table de hachage et une chaîne codée rend 
             * le vecteur des chaînes correspondant. (si aucune chaîne ne correspond, cette méthode rend le vecteur vide)
             */
     
    	public static Vector recuperer (Hashtable h, String code){
    		Vector v = (Vector)h.get(code);
    		if (v == null)
    			new Vector();
     
    		return v;
     
    	}
     
     
    	public static void placer (Hashtable h, String s){
    		String code = getChaine(s);
    		Vector v = (Vector)h.get(code);
    		if (v == null){
    			new Vector();
    			h.put(code, v);        // ligne 69
    		}
    		if (!v.contains(s)){
    			v.addElement(s);      // si le vecteur ne contient pas la chaine, j'ajoute cet élément.
    		}
     
    	}
     
     
     
    	public static void main (String [] Args){
    		Hashtable h = new Hashtable();
    		placer(h, "Dupond");
    		placer(h, "Fuponf");
    		placer(h, "Durand");
    		System.out.println(recuperer(h, "387663"));
    	}
    }
    lors de la compilation, j'ai l'erreur suivante:
    Exception in thread "main" java.lang.NullPointerException
    at java.util.Hashtable.put(Unknown Source)
    at TestHashtable.placer(TestHashtable.java:69)
    at TestHashtable.main(TestHashtable.java:81)
    je croyais bien mettre, dans put, la clé et la valeur, ms j'ai cette erreur. Peut être que ça vient pas de là?
    quelqu'un peut m'aider à résoudre le pb, ms aussi m'expliquer un peu ce qui est dans la méthode "recuperer" svp.
    J'ai essayé de comprendre, ms j'ai compris que la fin.

    Merci

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Il faut mettre ça ligne 69 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    h.put(code, new Vector());
    Puisque v == null.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 14
    Par défaut
    Merci, j'ai modifié comme vous avez ecrit, il ne m'a pas mis d'erreur à cette ligne. Parcontre, j'ai eu une autre erreur à la ligne d'apres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (!v.contains(s)){          // ligne 71
         v.addElement(s);
    j'ai donc essayer de modier comme avant en mettant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (!new Vector().contains(s)){
         new Vector().addElement(s);
    apres la compilation, j'obtiens "null". Ms c'est pas vraiment le résultat que j'attendais.
    Donc y'a-t-il d'autres explications?
    Merci.

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Je ne comprends pas ton programme parce que :

    1) la méthode getChaine te retournera toujours un chaîne vide ""
    2) la méthode getChiffre n'est jamais appelée !!!
    3) tu mets en clé put(cle, valeur) une chaîne transformée différente de celle que tu recherches en faisant ton get(cle)
    4) ...

    L'énoncé de ton problème n'est pas plutôt : "je dois créer une table de hashage" ?

    Tu peux fournir l'intitulé exact de ton exo ?

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 230
    Par défaut
    Citation Envoyé par selvie Voir le message
    Merci, j'ai modifié comme vous avez ecrit, il ne m'a pas mis d'erreur à cette ligne. Parcontre, j'ai eu une autre erreur à la ligne d'apres:
    Ton vecteur v est null, tu ne peux donc pas appeler la méthode "contains" dessus.
    Le principe, c'est de vérifier si le vecteur v est null :
    - si c'est le cas, tu le crées à l'aide d'un constructeur
    - sinon tu le manipules directement.

    A noter que faire des "new Vector();" sans affecter le résultat à variable n'a pas d'intérêt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/12/2004, 11h49
  2. Carte son sur ordinateur portable
    Par devmat dans le forum Matériel
    Réponses: 14
    Dernier message: 08/10/2004, 00h03
  3. [REDHAT] Installation RedHat 9 sur un portable Presario 900
    Par billyboy dans le forum RedHat / CentOS / Fedora
    Réponses: 8
    Dernier message: 12/06/2004, 00h06
  4. Howto - Envoi message sur réseau
    Par Thomad dans le forum Windows
    Réponses: 2
    Dernier message: 31/03/2004, 16h46
  5. Internet sur PC portable depuis Téléphone Mobile (via GSM)
    Par krugernet dans le forum Développement
    Réponses: 4
    Dernier message: 16/11/2003, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo