Créer une arrayList d'instances

Résolu
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 - 4 nov. 2006 à 11:53
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 4 nov. 2006 à 12:56
Bonjour à tous!
J'ai un petit probleme concernant un micro projet que je dois rendre.
Je dois créer une ArrayList qui contient des instances, pour ensuite les écrire dans un fichier. Pour plus de détails, j'ai une classe machine modélisant une machine qui a comme parametre un nom, une IP,... et je dois enregstrer tout ca dans un fichier. Pour cela je dois créer une ArrayList d'instances de machines (donc de machines) pour pouvoir travailler dessus. Ensuite, j'ecrase les données de mon fichier pour y mettre l'ArrayList modifiée..
Est ce que quelqu'un pourrait me donner une piste? Comment mettre des instances dans une ArrayList?
Je vous remercie d'avance pour l'auide que vous pourrez m'apporter!

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 

9 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 nov. 2006 à 12:34
Salut,

enfait dans ton exemple il y a des instances d'objet que tu met dans ton arraylist soit

while((texte = br.readLine()) != null)
    listeService.add( texte);//ici tu rajoute une instance de string dans ton arraylist

maintenant je ne vois pas beacoup ce que tu entends par "la remplir d'instances"...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 nov. 2006 à 12:52
Salut,

enfait il n'y a qu'avec les string que tu n'es pas obligé de faire un new exemple:String str "hello"; revient a faire String str new String("hello");
sinon pour le reste faut creer un instance soit pour ton cas
listeService.add( new Machine());
    ou encore
listeService.add( new Machine(....));//les .... represente les arguments du constructeur si il y a

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 nov. 2006 à 12:56
Bah en fait, si j'ai bien compris ton problème, c'est que tu veux ajouter des instances d'objets dans une ArrayList.

Alors soit tu fait comme te l'as proposé twinuts :
Machine oMachine = new Machine();
Array.add(oMachine);

Soit tu crée une classe qui te permettra de récupèrer une nouvelle instance de Machine, tout en l'ajoutant dans l'arraylist, donc une méthode createMachine :

Machine createMachine() {
    Machine oMachine = new Machine();
    array.add(oMachine);
    return oMachine;
}

Ce qui te permet d'éviter d'oublier de l'ajouter dans l'arraylist...
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 nov. 2006 à 11:59
Bah une instance, c'est un objet... donc il te suffit de stocker tout les objets de type machine (lors de leur création par exemple => design pattern fabrique).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 nov. 2006 à 12:11
Salut,

et pour les int,float,double, et tout type primitif du genre si tu es en jdk 1.5 pas de malaise il y a grdtion de l'autoboxing sinon faut passer par les class wrapper soit

int -> java.lang.Interger
long -> java.lang.Long
double -> java.lang.Double
boolean -> java.lang.Boolean
......

vu qu'un arraylist prends des objet et non des type primitif ...

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
4 nov. 2006 à 12:23
Merci DarkSidious ( de l'aide en vb, de l'aide en java, je vais bientot t'employer à temps plein lol), j'ai recherché le design pattern fabrique sur google, je vois pas trop le principe, mais je vais approfondir ca...
Est ce que tu pourrai juste me montrer un petit exemple d'ajout d'une instance dans une arrayList? Un truc vite fait qui pourrait debloquer mon pauvre cerveau lol!
J'espere ne pas abuser!!!!
Merci!

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
4 nov. 2006 à 12:28
Merci Twinuts! mais pour remplir une ArrayList normale, aucun problème!  Pour vous prouver que je peux quand même sortir une méthode en java (lol) voila mon code pour remplir une ArrayList avec les données d'un fichier  :

  public ArrayList listerService()
         {
            ArrayList listeService = new ArrayList();
            String cheminFichier = System.getProperty("user.dir") + "\\service.txt";
             FileReader fr = null;
             String texte = "";
            
            try {
                fr = new FileReader(cheminFichier);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
             BufferedReader br = new BufferedReader(fr);
             try
             {
            //on transfere les données du fichier service dans une ArrayList de maniere à lister
            // tous les services
                 while((texte = br.readLine()) != null) 
                     {    
                   
                    listeService.add( texte);
                                           }
                 br.close();
                 fr.close();
                 //il faut bien fermer le FileReader et le BufferedReader
                
             }
            
             catch(IOException ioe){System.out.println("erreur : " + ioe);}
            
             return listeService;
            
         }

C'est juste pour la remplir d'instances que je bloque... Mais j'ai quelques problèmes encore avec la prog objet. Ca viendra mais sur certains points, c'est trés flou...

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
4 nov. 2006 à 12:37
donc si je fais ca :
Machine mach = new Machine(...)
while((texte = br.readLine()) != null)
    listeService.add( Machine);//ici tu rajoute une instance de Machine dans ton arraylist
ca me permet de rajouter une instance à mon ArrayList?
Pour remplir d'instance, en fait je voulais dire ajouter des instances à mon ArrayList...

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 
0
tof008 Messages postés 695 Date d'inscription jeudi 5 mai 2005 Statut Membre Dernière intervention 5 janvier 2010 33
4 nov. 2006 à 12:53
Ben merci beaucoup c'était exactement ca que je voulais!

listeService.add( new Machine(....));//les .... represente les arguments du constructeur si il y a

Du coup tout me parait plus clair! Merci pour ton aide

         (Si la réponse vous convient, appuyez sur réponse acceptée...).

                           Noubliez pas de lire le REGLEMENT 
0
Rejoignez-nous