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

Collection et Stream Java Discussion :

comparaison HashMap et tableau


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut comparaison HashMap et tableau
    Bonjours a tous,
    Alors Voilà pour ma première visite sur ce site j'ai une questions quant à un projet en java. En effet, je dois dans ce projet comparer le contenu d'un fichier avec celui d'un hashMap afin de gérer une exception. Pour cela je veux créer un nouveau hashmap qui prendra le contenu de mon fichier, puis je pourrai comparer les deux hashmaps facilement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private HashMap<String, List<Double>> resultats = new HashMap<String, List<Double>>();  // mon Hashmap à comparer
    Code de la fonction en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public boolean verif(){
    		Map m = new HashMap<String, List<Double>>();		
    		Set<String> val1 = new HashSet<String>(m.values());
    		Set<String> val2 = new HashSet<String>(resultats.values());
    		boolean equal = val1.equals(val2);
     
    		return equal;
    }
    Alors j'ai deux problèmes :
    - Je ne sais pas vraiment comment entrer le contenu de mon fichier dans mon hashMap m
    - J'ai l'erreur suivante sur la ligne ou je crée val2 : "the constructor Hashset<string> (collection <list<double>>) is undefined

    Autant vous dire que je débute un peu en JAVA, alors si quelqu'un pouvait m'apporter son aide se serait sympa

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Salut,

    Grosso modo, tu dois :

    1. Lire ton fichier. Probablement ligne par ligne. Tu as des infos dans la FAQ : http://java.developpez.com/faq/java/...eLigneParLigne

    2. Parser chaque ligne pour récupérer les données dont tu as besoin pour remplir ta HashMap. Par exemple, avec la fonction substring(beginIndex, endIndex) de la classe String.

    3. Créer ta List<Double> avec les valeurs parsées et alimenter la Hashmap avec la liste et la clé.

    4. Faire ta comparaison.


    Maintenant, autre suggestion, au lieu de construire une autre HashMap, pourquoi est-ce que tu n'enlève pas les couple clé-valeur de ta HashMap iniale au fur et à mesure que tu les trouves dans ton fichier? Comme ça, si tu trouve une ligne dans le fichier qui n'est pas dans la Hashmap, tu sais qu'elle est différente. Et si à la fin du fichier, il reste des données dans la HashMap, tu sais qu'elles ne sont pas dans le fichier.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Par défaut
    D'accord, merci, mais dans ta seconde solution, je me trompe peut être, mais on ne saura pas si tout le fichier à été pris en compte, je prend un exemple :

    contenu hashmap :
    - math;12.5;10.0
    - francais;8.5;12.5

    contenu fichier :
    - math;12.5;10.0
    - francais;8.5;12.5
    - histoire;14;12.5

    Avec cette seconde solution on ne saura pas qu'il y a une ligne qui a été rajouté au fichier, enfin je pense..

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Par défaut
    Ben si.

    Lorsque tu arrivera à la ligne histoire, tu auras la clé "Histoire" qui ne sera pas présente dans la HashMap (qui sera vide à ce moment là en suivant ma deuxième méthode). Donc si tu teste le retour de taHashMap.get("Histoire") tu auras null. Donc tu sauras que tu as une ligne dans le fichier qui n'est pas présent dans la HashMap.

Discussions similaires

  1. [XL-2003] tri et comparaison dans un tableau
    Par camer12 dans le forum Excel
    Réponses: 1
    Dernier message: 08/03/2011, 14h42
  2. Comparaison de 2 tableau
    Par SSDCoyote dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/03/2010, 14h09
  3. Répartition et comparaison d'un tableau de char
    Par waldomania dans le forum Débuter
    Réponses: 1
    Dernier message: 31/12/2009, 12h04
  4. [XL-2000] Optimisation de comparaison de (long) tableau
    Par kaahlrv dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/07/2009, 17h03
  5. [E-07] TP Comparaison de points (tableau)
    Par perchman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2009, 11h22

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