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 :

erreur bete de java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut erreur bete de java



    j ai une erreur je sais que c est bête mais j arrive pas la trouve en faite, j ai
    un tableau d objet Personne(Id, Name)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int index=0;
                Personne[] TabPersonne = new Personne[10000];
                Personne tempPersonne = new Personne();
                tempPersonne.setName("HELP");
                tempPersonne.setId("MERCI");
     
                TabPersonne[index]=tempPersonne;
                index++;
    tempPersonne.setNAme("****");
    TabPersonne[index]=tempPersonne;

    après j ai mon tableau remplie que par ******* ???????????????????????????????????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int i=0;
    while(i<TabPersonne.length){
    system.out(TabPersonne[i].getName);
    i++
    }
    *****
    *****

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Par défaut
    Salut r0nsync,

    à première vue, ton erreur est due au fait que tu ne crées qu'une seule instance de Personne que tu affectes à tempPersonne.

    Ensuite, tu affectes à tous les éléments de ton tableau cette même instance.
    Pas étonnant que lorsque tu modifies cette instance, c'est l'ensemble des éléments du tableau qui sont apparamment modifiés.

    Pour t'en sortir, il te faudrait écrire autant de fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    temPersonne=new Personne();
    que tu as de personnes à caser dans le tableau.

    Mes 2€ centimes.

    MarkH

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut
    en faite moi je veux stock les tempPersonne dans mon tableau afin de les utilises plus tard .

    j ai essayé de crée une instance de personne a chaque fois mais j ai le meme résultat

  4. #4
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Personne[] TabPersonne = new Personne[10000];
     
    for(int i=0;i<10000;i++){
                Personne tempPersonne = new Personne();
                tempPersonne.setName("HELP " + i);
                tempPersonne.setId("MERCI " + i); 
                TabPersonne[i]=tempPersonne;
    }
    ... ce n'est pas une bonne solution (surtout un tableau de 10000)
    utilises plutot une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList<Personne> personnes = new ArrayList<Personne>();

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut
    je suis oblige d utilise java 1.4 donc je pence que je ne peux pas utilise les List

    si non enfaite je ne connais pas la taille de mon TAbpersonne a lavance donc je peux pas faire un for ???
    vous aurez pas une autre solution

  6. #6
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Les Lists sont là depuis Java 1.2 alors tu peux les utiliser sans problèmes.

    D'autant plus si tu ne connais pas le nombre d'instances de Personnes que tu dois stocker.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Par défaut
    Il me semble que les ArrayList existent bien dans le java 1.4.

    Parce que lorsque tu ne connais pas le nombre d'éléments que tu dois sauvegarder, je te recommande les listes (ou les hashmap si tu dois pouvoir retrouver facilement un de ces objets).

  8. #8
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 30
    Par défaut
    Personne[] Personnexml = new Personne[10000]

    voila mon Code, enfaite il est un peux plus compliqué
    j ai des personnes que je lire dans un fichier xml et je veux les stock ds un tableau

    List listPersonne = XPath.selectNodes(document, "//value");
    Iterator i = listPersonnes.iterator();
    while (i.hasNext()) {
    Element courant = (Element) i.next();
    Personne temp_Personne = new Personne();
    temp_Personne.setMPersonneName(courant.getChildText("name"));
    Personnexml[indexPersonne]=temp_Personne;
    System.out.println( Personnexml[indexPersonne].getMPersonneName()+
    "---"+Personnexml[0].getMPersonneName());
    indexPersonne=indexPersonne+1;

    }


    et j ai comme affichage

    dadazda---dadazda
    ddddddd---ddddddd
    JPC_99---JPC_99
    TOTO4---TOTO4
    TOTO5---TOTO5

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut
    Citation Envoyé par eclesia Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Personne[] TabPersonne = new Personne[10000];
     
    for(int i=0;i<10000;i++){
                Personne tempPersonne = new Personne();
                tempPersonne.setName("HELP " + i);
                tempPersonne.setId("MERCI " + i); 
                TabPersonne[i]=tempPersonne;
    }
    ... ce n'est pas une bonne solution (surtout un tableau de 10000)
    utilises plutot une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList<Personne> personnes = new ArrayList<Personne>();
    Pourquoi est-ce que ce n'est pas une bonne solution d'utiliser un tableau de 10000 éléments plutôt qu'une liste ?

  10. #10
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par yarf Voir le message
    Pourquoi est-ce que ce n'est pas une bonne solution d'utiliser un tableau de 10000 éléments plutôt qu'une liste ?
    Les tableaux ne sont pas manipulable aussi facilement que les List, et à moins de n'avoir qu'un nombre d'élément fixe ou d'autre impératif pour utiliser un tableau (parce que doit le passer à une méthode par exemple), il est généralement plus simple d'utiliser une List...

    Surtout avec les Generics qui simplifie leurs utilisations...

    Je rappelle quand même :
    • Que les ArrayList sont implémenté en utilisant des tableaux, et propose donc grosso-modo les mêmes performances qu'un tableau.
    • Qu'il est possible de définir la taille initial d'une List pour éviter de trop multiple redimensionnement lorsqu'on connait la taille finale (la plupart des implémentations propose un tel constructeur) :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ArrayList<Personne> personnes = new ArrayList<Personne>( 10000 );


    a++

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Par défaut
    Pour fixer les choses, voici un bout de code qui remplit un tableau de trois personnnes et qui tente de rester proche de ce que tu as écrit :
    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
     
    Personne[] tabPersonne=new Personne[3];
     
    int index=0;
    Personne tempPersonne=new Personne();
    tempPersonne.setName("Dupont");
    tempPersonne.setId("12323");
    tabPersonne[index]=tempPersonne;
     
    index++;
    tempPersonne=new Personne();
    tempPersonne.setName("Durand");
    tempPersonne.setId("45654");
    tabPersonne[index]=tempPersonne;
     
    index++;
    tempPersonne=new Personne();
    tempPersonne.setName("Martin");
    tempPersonne.setId("567657");
    tabPersonne[index]=tempPersonne;
     
    index=0;
    while (index<tabPersonne.length) {
       System.out.println(tabPersonne[index].getName());
       index++;
    }
    Je doute fort que l'affichage produise trois fois le même nom....

    MarkH

    P.S. (pour les puristes Java qui liraient ce code) : dans une *vraie* appli, je n'écrirais sûrement pas ça comme ça

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

Discussions similaires

  1. ERREUR UPDATE Avec java et oracle
    Par gloglo dans le forum JDBC
    Réponses: 7
    Dernier message: 20/10/2006, 09h35
  2. un problème avec un tableau d'objet, erreur bete ?
    Par Heero_2040 dans le forum C++
    Réponses: 12
    Dernier message: 13/07/2006, 13h20
  3. Erreur de connexion : java RMI & linux
    Par pedouille dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 16/05/2006, 20h04
  4. Erreur appel fonction java d'une jsp
    Par itachi38 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 29/04/2006, 16h51
  5. [XSL] [debutant] erreur bete avec choose
    Par enigma dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/07/2005, 17h58

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