Créer une arrayList d'instances [Résolu]

tof008 707 Messages postés jeudi 5 mai 2005Date d'inscription 5 janvier 2010 Dernière intervention - 4 nov. 2006 à 11:53 - Dernière réponse : cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention
- 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 
Afficher la suite 

9 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 4 nov. 2006 à 12:34
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 4 nov. 2006 à 12:52
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 4 nov. 2006 à 12:56
+3
Utile
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...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_DARKSIDIOUS
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 4 nov. 2006 à 11:59
0
Utile
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).
Commenter la réponse de cs_DARKSIDIOUS
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscription 20 avril 2018 Dernière intervention - 4 nov. 2006 à 12:11
0
Utile
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
Commenter la réponse de Twinuts
tof008 707 Messages postés jeudi 5 mai 2005Date d'inscription 5 janvier 2010 Dernière intervention - 4 nov. 2006 à 12:23
0
Utile
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 
Commenter la réponse de tof008
tof008 707 Messages postés jeudi 5 mai 2005Date d'inscription 5 janvier 2010 Dernière intervention - 4 nov. 2006 à 12:28
0
Utile
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 
Commenter la réponse de tof008
tof008 707 Messages postés jeudi 5 mai 2005Date d'inscription 5 janvier 2010 Dernière intervention - 4 nov. 2006 à 12:37
0
Utile
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 
Commenter la réponse de tof008
tof008 707 Messages postés jeudi 5 mai 2005Date d'inscription 5 janvier 2010 Dernière intervention - 4 nov. 2006 à 12:53
0
Utile
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 
Commenter la réponse de tof008

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.