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 :

Probleme création de HashMap


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut Probleme création de HashMap
    Bonjour, voila je sais que ma question ne vole pas tres haut.... le probleme est que je n'ai que tres peu de temps pour assimiler les principes d'un langage Objet et le langage Java lui meme + VTL. D'habitude j'ai mon Cdp pour mefiler, un coup de main , mais il est en vacance cette semaine .

    Alors voila mon souci, je cherche a mettre dans une map une arraylist contenant deux variables date et un nom. A chaque je souhaite associer les deux dates debut et fin. Le nombre de segment de date étant variable pour chaque nom.
    Ces données sont récupérer d'un XML Par du VTL ( ya pas de souci a ce nivo).


    Dans le XSL
    <xsl:when test="not(@start)=false">
    <xsl:if test="@isWorkDay='false'">
    $date.appelint($noms2,"<xsl:value-of select="@start"/>","<xsl:value-ofselect="@finish"/>")
    </xsl:if>
    </xsl:when>

    Interval.java
    package com.xxxx.xxx.xxxxx;


    public class Interval {

    private String start;

    private String finish;

    public String getFinish() {
    return finish;
    }

    public void setFinish(String finish) {
    this.finish = finish;
    }

    public String getStart() {
    return start;
    }

    public void setStart(String start) {
    this.start = start;
    }

    }
    DatHelper.java
    private HashMap<String,ArrayList> map= new HashMap<String,ArrayList>();

    public void appelint(String nom,String datedeb, String datefin) throws ParseException {

    ArrayList<String> lst=(ArrayList)map.get(nom);
    if(lst==null){
    lst= new ArrayList<String>();
    map.put(nom,lst);
    }

    Interval j =new Interval() ;
    j.setStart(datedeb);
    j.setFinish(datefin);
    lst.add(j); <===== PB à ce niveau


    }
    Merci d'avance

  2. #2
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Tu ajoutes un Interval à une liste de String, ça peut pas marcher...

  3. #3
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut reponse
    Qu'est que tu me conseil de faire?

    je suis un peu surpassé par le java la ..........

    Merci d'avance!!!!

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    LE problème que tu as c'est qu'a cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lst= new ArrayList<String>();
    tu créé une liste de String or à cette ligne
    tu met un Interval dans cette liste.

    Ce que tu devrait faire c'est déclarer une liste d'Interval à la place de String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lst= new ArrayList<Interval>();

  5. #5
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Merci beaucoup, j'ai encore pas mal de difficulté a tout comprendre.....

  6. #6
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    J'ai toujours une p'tit souci......

    public void appelint(String nom,String datedeb, String datefin) throws ParseException {
    ArrayList<Interval> lst = new ArrayList<Interval>();
    lst=(ArrayList<Interval>)map.get(nom); <====== Pb
    if(lst==null){
    lst= new ArrayList<Interval>();
    map.put(nom,lst);
    }
    Interval j =new Interval() ;
    j.setStart(datedeb);
    j.setFinish(datefin);
    lst.add(j);
    map.put(nom,lst);
    if(!map.isEmpty())
    System.out.println("ca progresse..."+map.get(j));<===== retourne NULL
    System.out.println("ca progresse..."+map.toString()); <=== retourne un des noms au lieu de 3 différents avec ca à la suite : =[com.xxx.xx.xxx.Interval@1e903d5]
    J'arrive pas à savoir si dans la Map , il y a bien les infos selon ce schéma : la clé est le nom de la pers et il lui ait associé des segments de date (début et fin). Je sais c'est tout bete mais je suis bien bloqué.......

    Merci d'avance....

  7. #7
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    please un p'tit coup de main , je suis vraiment bloqué

  8. #8
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Déjà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("ca progresse..."+map.get(j));<===== retourne NULL
    Rien de plus logique tu fais un get sur un Interval alors que ta clé est une String => la clé n'est pas trouvée, on te renvoie NULL

    Il suffit d'aller voir un peu la javadoc : http://java.sun.com/j2se/1.5.0/docs/.../util/Map.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("ca progresse..."+map.toString()); <=== retourne un des noms au lieu de 3 différents avec ca à la suite : =[com.xxx.xx.xxx.Interval@1e903d5]
    Le map.toString() est inutile, le toString est utilisé automatiquement dans la concaténation à une String. [com.xxx.xx.xxx.Interval@1e903d5] : c'est normal, si tu n'as pas redéfini le toString de Interval, il va pas afficher magiquement les champs.

  9. #9
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Merci remika,

    Encore un dernier conseil, j'ai regardé le doc que vers lequel tu m'as orienté, mais je n'ai toujours pas trouvé de maniere de vérifier que les dates (string) se sont enregistrer dans un format "utilisable". Je retrouve toujours le format =[com.xxx.xx.xxx.Interval@1e903d5].

  10. #10
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Dans le post précédent, je t'ai mis de redéfinir toString de Interval !!!!!

  11. #11
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    lol désolé !!!! excuse mon ignorance

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

Discussions similaires

  1. [JTree] Probleme création noeud
    Par tittoto dans le forum Composants
    Réponses: 8
    Dernier message: 02/04/2007, 15h26
  2. Réponses: 1
    Dernier message: 19/03/2007, 20h57
  3. Probleme création gif
    Par vodulci dans le forum Allegro
    Réponses: 1
    Dernier message: 12/02/2007, 01h43
  4. [Excel] Probleme création de courbe de Gauss
    Par Mut dans le forum Excel
    Réponses: 4
    Dernier message: 13/11/2006, 12h08
  5. Probleme création Table
    Par jmjmjm dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/01/2006, 19h06

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