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 :

Problème de stockage des objets:Vector


Sujet :

Collection et Stream Java

  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Problème de stockage des objets:Vector
    Bonjour,
    j'ai un problemme de mise a jour a chaque iteration:
    mon programme permet de parcourir un vecteur des documents(chaque document est un composant du vectuer): j'appelle ce vecteur vecteur classes dans mon programme.
    je fais une classification hierarchique entre ces document. chaque document au depart est une classeune classe est definie par un ensemble de documents: 1 ou plusieurs documents)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     class Classe
    {
         Vector  points;   
         public Classe() 
            {}
        public Classe(String ch) 
            {
     
                points=new Vector();
                points.addElement(ch);
             }    
    }
    Principe de classification :
    - a chaque iteration je regroupe les deux classes qui ont la distance maximale :imax et jmax les deux classes a regrouper.
    - ensuite je copie le vecteur points de la classes jmax dans le vecteur points de la classe imax
    - et je supprime la classe jmax.
    ce principe et retirer jusqu'a que toutes les classses sont reuni dans une seule classe;

    jusqu'a ici le programme fonctionne correctement: Voici le code
    .
    .......
    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
     Vector Regroupement=new Vector();//permet d'enregistrer tous les regropement
    public Vector Test(Vector classes,float [][]matriceDisDoc, Vector globale)
        {
     
         Vector  regroupement=new Vector();
                int i=0;
                int j=0;
                int imax=-1;// pour la suppresion de elements regrouper dans le vecteur
                int jmax=-1;// pour la suppresion de elements regrouper dans le vecteur
                float dismax=0; 
                float []tabdis=new float[4];
                float Inertie_Intra=0;
                float Inertie_Inter=0;
                float InertieTotale=0;
                // boolean trouve=false;  
                matricedistanceclasse=new float[classes.size()][classes.size()];            
                for(i=0;i<classes.size()-1;i++)
                {        
                 for(j=i+1;j<classes.size();j++)
                  {
                      Classe e1=new Classe();
                      e1=(Classe)classes.elementAt(i);
                      Classe e2=new Classe();
                      e2=(Classe)classes.elementAt(j);                    
                      tabdis=distanceEntreDeuxClasses(e1,e2,matriceDisDoc,globale);
                      float d=tabdis[0];
                      matricedistanceclasse[i][j]=d;//distance entre deux classe
                      // calcul de l'inerite
                      if(d>dismax)
                      {
                       dismax=d;
                       imax=i;
                       jmax=j;                  }           
                    }
                }
     
                System.out.println(); 
                if(jmax!=-1)
                {
     
                 Classe dc=new Classe();
                 dc=(Classe)(classes.elementAt(jmax));
    //regrouper jmax a imax et supprimmer jmax
                 for(int h1=0;h1<dc.points.size();h1++)
     
                 ((Classe)(classes.elementAt(imax))).points.add(((Classe)       (classes.elementAt(jmax))).points.elementAt(h1));             classes.remove(jmax);                                       
     
     
              Regroupement.add(classes)//Pb: dans le vecteur Regroupement je trouve toujous la mise ajour de classes         }     
     
                  if(classes.size()>1)
                 Test(classes,matriceDisDoc,globale);
            return classes;
        }
    MOn problemme c'est tous les composantes du vecteur regroupement ont les memes: Le truc c'est que la modofication sefait sur la le vecteur classes et classes toujours prend la derniere modification: Est ce qu'il une solution.
    Merci

  2. #2
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    j arrive pas a lire ton code, tu peux ajouter les balise [ code ] [ /code ] stp.
    une petite remarque entre temps pourquoi tu cree a chaque fois une nouvelle Classe avant de l aprendre de ton tableau? t as pas besoin de faire ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Classe e1=new Classe();
    e1=(Classe)classes.elementAt(i);
    Classe e2=new Classe();
    e2=(Classe)classes.elementAt(j);
    plustot ca directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Classe e1=(Classe)classes.elementAt(i);
    Classe e2=(Classe)classes.elementAt(j);
    ajoute les balise et on pourra y voir un peu plus clair.

    Cheers,

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Problemme
    Bonjour,
    Merci pour tes remarques. j'espere que tu as localise exacetement le truc dans mon programme. voici le code entre les balises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class Classe
    {
    Vector points; 
    public Classe() 
    {}
    public Classe(String ch) 
    {
     
    points=new Vector();
    points.addElement(ch);
    } 
    }
    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
     
    .......
    Vector Regroupement=new Vector();//permet d'enregistrer tous les regropement
    public Vector Test(Vector classes,float [][]matriceDisDoc, Vector globale)
    {
     
    Vector regroupement=new Vector();
    int i=0;
    int j=0;
    int imax=-1;// pour la suppresion de elements regrouper dans le vecteur
    int jmax=-1;// pour la suppresion de elements regrouper dans le vecteur
    float dismax=0; 
    float []tabdis=new float[4];
    float Inertie_Intra=0;
    float Inertie_Inter=0;
    float InertieTotale=0;
    // boolean trouve=false; 
    matricedistanceclasse=new float[classes.size()][classes.size()]; 
    for(i=0;i<classes.size()-1;i++)
    { 
    for(j=i+1;j<classes.size();j++)
    {
    Classe e1=new Classe();
    e1=(Classe)classes.elementAt(i);
    Classe e2=new Classe();
    e2=(Classe)classes.elementAt(j); 
    tabdis=distanceEntreDeuxClasses(e1,e2,matriceDisDoc,globale);
    float d=tabdis[0];
    matricedistanceclasse[i][j]=d;//distance entre deux classe
    // calcul de l'inerite
    if(d>dismax)
    {
    dismax=d;
    imax=i;
    jmax=j; } 
    }
    }
     
    System.out.println(); 
    if(jmax!=-1)
    {
     
    Classe dc=new Classe();
    dc=(Classe)(classes.elementAt(jmax));
    //regrouper jmax a imax et supprimmer jmax
    for(int h1=0;h1<dc.points.size();h1++)
     
    ((Classe)(classes.elementAt(imax))).points.add(((Classe) (classes.elementAt(jmax))).points.elementAt(h1)); classes.remove(jmax); 
     
     
    Regroupement.add(classes)//Pb: dans le vecteur Regroupement je trouve toujous la mise ajour de classes } 
     
    if(classes.size()>1)
    Test(classes,matriceDisDoc,globale);
    return classes;
    }
    Mon but : a chaque regroupement je stocke l'esensemble des classes forunies dan sun vecteur que j'ai appeller Regroupement. mais le ce prog me sotcke les classes forunies avec la derniere mise a jour.
    merci pour ton aide

  4. #4
    Membre Expert
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    flemme de lire : si tu pouvais indenter ton code et par la même occasion appliquer les conseils qui t'on été donnés au dessus, ça aiderait.
    Bon courage.

  5. #5
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Salut,

    1er truc, laisse tomber les Vector et utilise plutôt les ArrayList.
    2nd truc, si j'ai compris ton raisonnement tu veux faire une méthode récursive??
    Si c'est bien ça, alors tu as un problème par là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(classes.size()>1)
    Test(classes,matriceDisDoc,globale);
    return classes;
    Après je n'ai pas du tout compris ce que tu voulais faire mais tu peux commencer par mettre des lignes de debug pour comprendre ce que ton prog fait.

    Bon courage

  6. #6
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Voici le problemme
    bonjour,
    ma fonction est recursive sur le vecteur classes:
    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
     
    public Vector Test(Vector classes,float [][]matriceDisDoc, Vector globale)
    {
     
    Vector regroupement=new Vector();
    int i=0;
    int j=0;
    int imax=-1;// pour la suppresion de elements regrouper dans le vecteur
    int jmax=-1;// pour la suppresion de elements regrouper dans le vecteur
    float dismax=0; 
    float []tabdis=new float[4];
    float Inertie_Intra=0;
    float Inertie_Inter=0;
    float InertieTotale=0;
    // boolean trouve=false; 
    matricedistanceclasse=new float[classes.size()][classes.size()]; 
    for(i=0;i<classes.size()-1;i++)
    { 
    for(j=i+1;j<classes.size();j++)
    {
    Classe e1=new Classe();
    e1=(Classe)classes.elementAt(i);
    Classe e2=new Classe();
    e2=(Classe)classes.elementAt(j); 
    tabdis=distanceEntreDeuxClasses(e1,e2,matriceDisDoc,globale);
    float d=tabdis[0];
    matricedistanceclasse[i][j]=d;//distance entre deux classe
    // calcul de l'inerite
    if(d>dismax)
    {
    dismax=d;
    imax=i;
    jmax=j; } 
    }
    }
     
    // dans cette zonne je fait l'ajout des elements de la classe dans la position jmax dans la classes de imax
    //et je supprime le jmax
    // je travaille sur le meme vecteur des classes.
     //Voir le code A
    // je sotocke le vecteur classes dans un vecteurs globale Regroupement
    //mais une fois la mise a jour est faite sur le vecteur classes ses enregistrements dans le vecteur globale change: ma question est ce que je peut trouver une solution 
    Regroupement.add(classes)//Pb est ici} 
     
    if(classes.size()>1)
    Test(classes,matriceDisDoc,globale);
    return classes;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      Code A
    Classe dc=new Classe();
    dc=(Classe)(classes.elementAt(jmax));
    //regrouper jmax a imax et supprimmer jmax
    for(int h1=0;h1<dc.points.size();h1++) 
    ((Classe)(classes.elementAt(imax))).points.add(((Classe) (classes.elementAt(jmax))).points.elementAt(h1)); 
    classes.remove(jmax);

  7. #7
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Salut,
    Ce que je voulais dire par
    Citation Envoyé par manube Voir le message
    Salut,
    Si c'est bien ça, alors tu as un problème par là:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(classes.size()>1)
    Test(classes,matriceDisDoc,globale);
    return classes;
    C'est que considérant une fonction récursive, je m'attend plutôt à voir qque chose du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(classes.size()>1)
     return Test(classes,matriceDisDoc,globale);
    //else
     return classes;
    Sinon la valeur retournée est celle du premier appel uniquement...

  8. #8
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Explication de mon problemme
    salut,
    Mon programme permet de faire une classification hierarchique d'un ensemble de documents.
    -ces documents sont stockes dans un vecteur de je nomme classes
    -au debut de mon programme je considere un documents comme une classes.
    Voici le code
    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
    class Classe
    {
    Vector points; 
    public Classe() 
    {}
    public Classe(String ch) 
    {
     
    points=new Vector();
    points.addElement(ch);
    } 
    }
    
    - le processus tourne en regroupement les deux classes qui ont une distance maximale.
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1234567891011121314151617181920
     
    for(i=0;i<classes.size()-1;i++)
    { 
    for(j=i+1;j<classes.size();j++)
    {
    Classe e1=new Classe();
    e1=(Classe)classes.elementAt(i);
    Classe e2=new Classe();
    e2=(Classe)classes.elementAt(j); 
    tabdis=distanceEntreDeuxClasses(e1,e2,matriceDisDoc,globale);
    float d=tabdis[0];
    matricedistanceclasse[i][j]=d;//distance entre deux classe
    // calcul de l'inerite
    if(d>dismax)
    {
    dismax=d;
    imax=i;
    jmax=j; } 
    }
    }
    - le processus s'arrete lorsque tous les documents sont regrouper dans la meme classe: voici le code qui nous permet de determiner les deux classes a regrouper imax et jmax. for(i=0;i<classes.size()-1;i++) { for(j=i+1;j<classes.size();j++) { Classe e1=new Classe(); e1=(Classe)classes.elementAt(i); Classe e2=new Classe(); e2=(Classe)classes.elementAt(j); tabdis=distanceEntreDeuxClasses(e1,e2,matriceDisDoc,globale); float d=tabdis[0]; matricedistanceclasse[i][j]=d;//distance entre deux classe // calcul de l'inerite if(d>dismax) { dismax=d; imax=i; jmax=j; } } } le code qui permet de copier les elements de la classes jmax dans la classe imax et suppression de jmax.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Classe dc=new Classe();
    dc=(Classe)(classes.elementAt(jmax));
    //regrouper jmax a imax et supprimmer jmax
    for(int h1=0;h1<dc.points.size();h1++) 
    ((Classe)(classes.elementAt(imax))).points.add(((Classe) (classes.elementAt(jmax))).points.elementAt(h1)); 
    classes.remove(jmax);
    - mon but c'est de stocker a chaque iteration le regroupement faite par le programme et a la fin de programme je doit avoir tous les regroupement : mais c'est ici que je trouve le problemme le meme regroupement a la fin

  9. #9
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut dernier appel
    salut,
    bon j'ai essayer d'appliquer ta remarque mais sa change rien au niveau resulats. toujous la valeur retournée est celle du dernier appel.

  10. #10
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Alors,

    Si tu utilise le jdk 5 ou 6 tu peux définir ton vector (ou ArrayList ) comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Vector<Classe> classes = new Vector<Classe>();
    Ca te permettra de ne pas avoir à faire des cast 3 fois par ligne et on code te paraîtra bcp plus clair.

    Autre chose, si ton code ci-dessous est exact
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Vector Regroupement=new Vector();//permet d'enregistrer tous les regropement
    public Vector Test(Vector classes,float [][]matriceDisDoc, Vector globale)
    {
     
    Vector regroupement=new Vector();
    tu as un problème de variables qui ont le même nom et qui risquent de tout te faire planter.
    En fait tu ajoutes dans ton vecteur regroupement en local (dans ta méthode) et tu dois sûrement essayer de lire celui qui est dans ta classe par la suite.
    Et je persiste dans le fait que tu ne gères pas ta méthode comme il se doit car tu ne t'occupes pas de la valeur de retour de ton appel à la méthode récursive, ce qui est la base me semble-t-il.

    Je te conseillerai qd même de nettoyer ton code car là il n'est pas lisible du tout. En 2 minutes j'obtiens un code comme ça (qui est un peu plus lisible), si ça peut t'aider:
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    class Classe
    	{
    		private ArrayList<String> points;   
    		protected Classe() 
    		{
    			points=new ArrayList<String>();
    		}
    		protected Classe(String ch) 
    		{
    			points=new ArrayList<String>();
    			points.add(ch);
    		}
     
    		protected void addPoint(String ch)
    		{
    			points.add(ch);
    		}
     
    		protected String getPoint(int i)
    		{
    			return points.get(i);
    		}
     
    		protected int getSize()
    		{
    			return points.size();
    		}
    	}
     
     
    	public ArrayList Test(ArrayList<Classe> classes,float [][]matriceDisDoc, ArrayList globale)
    	{
    		ArrayList<List<Classe>> regroupement = new ArrayList<List<Classe>>();//permet d'enregistrer tous les regropement
    		int i=0;
    		int j=0;
    		int imax=-1;// pour la suppresion de elements regrouper dans le vecteur
    		int jmax=-1;// pour la suppresion de elements regrouper dans le vecteur
    		float dismax=0; 
    		float []tabdis=new float[4];
    		float Inertie_Intra=0;
    		float Inertie_Inter=0;
    		float InertieTotale=0;
    		// boolean trouve=false;  
    		float[][] matricedistanceclasse=new float[classes.size()][classes.size()];            
    		for(i=0;i<classes.size()-1;i++)
    		{        
    			for(j=i+1;j<classes.size();j++)
    			{
    				tabdis=distanceEntreDeuxClasses(classes.get(i),classes.get(j),matriceDisDoc,globale);
    				float d=tabdis[0];
    				matricedistanceclasse[i][j]=d;//distance entre deux classe
    				// calcul de l'inerite
    				if(d>dismax)
    				{
    					dismax=d;
    					imax=i;
    					jmax=j;                  
    				}           
    			}
    		}
     
    		if(jmax!=-1)
    		{
    			Classe dc = classes.get(jmax);
    //			regrouper jmax a imax et supprimmer jmax
    			for(int h1=0;h1<dc.getSize();h1++)
    				classes.get(imax).addPoint(dc.getPoint(h1));
    			classes.remove(jmax);                                       
    			regroupement.add(classes);//Pb: dans le vecteur Regroupement je trouve toujous la mise ajour de classes              
    		}
    		if(classes.size()>1)
    			Test(classes,matriceDisDoc,globale);
    		return classes;
    	}
    Voilà, bon courage pour la suite

  11. #11
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Problemme
    bon c'est une idee interessantes mais comment je fais pous changer une vecteur en arraylist
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public  Vector partitioninial(Vector globale) 
    {
     
               Vector classes=new Vector();
                for(int i=0;i<globale.size();i++)
                {   
                 Classe e=new Classe(globale.elementAt(i).toString());
                 classes.add(e);
                }
            return classes;
    }

  12. #12
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    tu change Vector par ArrayList.
    ouai aussi simple que ca, va faire un tour a cote des Collections de java 1.5.
    Voila une declaration simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<Bidules> taListe = new ArrayList<Bidules>();
    mais serieux un petit tour de la doc te fera du bien,

    Cheers,

  13. #13
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Changement
    bonjour,
    tu pense que avec le vecteur on a pas de solution a ce problemme
    j'ai quelque milliers ligne de code avant l'utilisation c' a pose beaucoup de temps.

  14. #14
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    non tu peux continuer a travailler avec ton Vector,

    Serieusement mon ami, j arrive pas a comprendre ton programme et a ce que tu veux faire avec ces Classes et ces points.
    Mais ce que je vois c est qu un certain moment tu ne fais pas les choses correctement pour garder le bon resultat,
    un conseil step by step encore dans ton code et un bon conseil change les noms de tes variables pour des noms plus cense, entre classes, documents, vecteur, regroupement, Regroupement...

  15. #15
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Execution de mon prog : Exemple
    bonjour,
    C=correspond au classe
    d=correspond au document
    Vector classes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             [C1(d1), C2(d2), C3(d3) ,C4(d4), C5(d5), C6(d6), C7(d7),....]
    iteration 1= je vais regrouper C1 et C3
    le vecteur devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
           [C1(d1,d3), C2(d2), C4(d4), C5(d5), C6(d6), C7(d7),....]
    - et je stocke dans regroupement
    - le processus s'arrecte lorsque le nombre de classes =1.
    j'espere que mnt le problemme est un peu clair

  16. #16
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Alors, j'ai peut être une piste pour toi:
    si tu as 2 documents/classes dont la différence/distance est 0 alors tu as une boucle infinie (car jmax reste à -1) et tu rappelles la fonction sans rien changer.
    Voilà

  17. #17
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut
    bonjour,
    j'espere que vous avez bien compris ma problemme avec l'exemple donne. Merci

  18. #18
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut Encore la lumiere
    bonjour;
    la distance je le fait entre deux classes et non pas sur deux documents: mais la distance est toujours positives et !=0.
    Mon problemme : je veux a chaque appel de la fonction je preserve le vecteur retourner.

  19. #19
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut truc
    bonjour,
    j'ai essayer avec le ArrayList mais c'est la meme chose. tu peux m'aider comment je peux stocker le regroupement de chaque iteration. car pour moi je trouve de mon vecteur le meme regroupement.
    Truc : je crois que le problemme c'est la mise se fait sur le vecteur classe et le stockage se fait sur la derniere mise a jour

  20. #20
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 17
    Par défaut
    bonjour,
    ya t-il une solution pour mon problemme. Merci

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/03/2008, 13h00
  2. Réponses: 1
    Dernier message: 10/02/2008, 12h05
  3. Problème de stockage des caractères arabe dans Mysql?
    Par merci_tous dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/04/2007, 12h21
  4. Stockage des objets dans une BD(InstantObject)
    Par Klemsy78 dans le forum Delphi
    Réponses: 3
    Dernier message: 29/03/2007, 20h56
  5. Réponses: 4
    Dernier message: 21/02/2007, 17h08

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