Partage
  • Partager sur Facebook
  • Partager sur Twitter

Stocker un objet dans un tableau

possible ?

Sujet résolu
    23 juin 2009 à 10:11:57

    Bonjour à tous,
    j'ai une petite question qui peut paraître bête mais je me lance ...
    Est il possible de stocker un objet dans un tableau ?
    Par exemple, imaginons que j'ai une classe objet et une variable globale i (je sais c'est mal mais c'est pour l'exemple et pour mettre moins de code ^^ )
    Dans la classe objet, j'ai une méthode dire_son_nom() (pourquoi pas ? je sais pas où je trouve mes exemples mais bon ...)
    je ne peux pas faire ça ?
    Objet Obj; 
    Obj tab;
    tab[i] = Obj; 
    if (i > 0) 
    {
       tab[i].dire_son_nom(); 
    }
    

    J'ai essayé sur eclipse et au moment de taper le . on me propose pas la liste des méthodes ... d'où ma question
    • Partager sur Facebook
    • Partager sur Twitter
      23 juin 2009 à 10:45:22

      oui oui possible bien évidemment !!!!!
      Et Eclipse ne semble pas savoir ce que tu met dans ton tableau c'est tout. Par contre il est mal initialisé ton tableau la
      • Partager sur Facebook
      • Partager sur Twitter
        23 juin 2009 à 11:54:29

        Eclipse peut être long à la détente.
        Parfois il ne réagit quand je mets des . et ne me propose rien du tout. Parfois il a du retard quand j'efface une ligne il me trouve encore des choses fausses.
        Pour cela il faut bien enregistrer son travail pour qu'il actualise...

        Sinon un code correct pour le tableau serait comme suit :
        int i = 2;
        Objet o = new Objet();
        Objet[] monTableau = new Objet[3];
        monTableau[i] = o;
        monTableau[i].direSonNom();
        


        Les IDE c'est bien beau mais ça fait paniquer les trois quarts des débutants quand y'a un truc qui marche pas correctement.
        • Partager sur Facebook
        • Partager sur Twitter
          23 juin 2009 à 14:40:40

          Ok merci pour votre aide :)
          Question supplémentaire : j'ai fais plus de c++ que de java et je voudrais savoir si il est possible de faire de la ré-allocation de mémoire pour le tableau car j'ignore combien d'objet je vais stocker dans ce tableau
          Si c'est possible, comment ?
          • Partager sur Facebook
          • Partager sur Twitter
            23 juin 2009 à 15:35:57

            Je ne pense pas

            Par contre tu peux utiliser une arraylist dont la taille augmente lorsque tu ajoute un élement ;)

            • Partager sur Facebook
            • Partager sur Twitter
              23 juin 2009 à 15:43:05

              En effet les listes sont dynamiques en java donc de taille extensibles et pas besoin de gérer la mémoire tout est optimisé à la compilation
              • Partager sur Facebook
              • Partager sur Twitter
                23 juin 2009 à 15:45:50

                Ou sinon tu fais un Graaaaaaaand tableau vide comme en C...
                • Partager sur Facebook
                • Partager sur Twitter
                  23 juin 2009 à 15:51:22

                  On ne fait justement pas de tableau vide en C xD
                  Tout mais pas ça quoi ><
                  En C, on utilise l'allocation dynamique.
                  En java, pour un tableau, pourquoi ne pas utiliser la classe Vector ?
                  Pour récupérer une méthode, il y a getItem ou getElement, je sais plus xD(Eclipse auto-complète :D )
                  Et après, pour rajouter un objet, il n'y à plus qu'a faire :
                  MonVecteur.push_back(monObjet);
                  

                  Si mes souvenirs sont bons

                  Bien entendu, tu ne dois pas connaître la taille finale ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 juin 2009 à 15:54:40

                    C'est mon C à moi !
                    => Mais une collection en Jaava c'est bien pratique.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 juin 2009 à 17:57:40

                      Vector tend à ne plus être utilisé, ça a été remplacé par ArrayList...
                      Elle n'est pas encore marquée comme Deprecated mais ça ne saurait tarder (j'ai pas regardé le JDK7 encore).

                      Si tu as une idée maximale de la taille du tableau et si celle-ci est assez petite, vaut mieux garder les tableaux simples.
                      Si la taille dépasse, disons, 50, alors vaut mieux se tourner vers les ArrayList qui gèreront ça tout seul et bien plus efficacement.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 juin 2009 à 18:37:38

                        Ok, merci de m'avoir mis à niveau xD
                        Sinon, le truc, si on veut de temps en temps utiliser un tableau classique, c'est juste de ne pas mettre un nombre exorbitant quand on sait pas combien d'éléments on va avoir...
                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 juin 2009 à 8:19:23

                          Le jdk 7 est sorti ? o_O (je suis pas à jour moi)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 juin 2009 à 9:29:37

                            Suite à vos conseil, je vais utiliser une liste. Ça facilitera les choses :)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 juin 2009 à 15:17:40

                              Citation : jonkille

                              Le jdk 7 est sorti ? o_O (je suis pas à jour moi)


                              http://download.java.net/jdk7/binaries/
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Stocker un objet dans un tableau

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                              • Editeur
                              • Markdown