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 :

rechercher dans une arraylist


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut rechercher dans une arraylist
    bonjour ,
    je souhaite faire une recherche ,modification et suppression dans une arraylist on t’interrogeant avec mes JTextfields :
    j'ai 2 classes : Personne avec ses propriétés et Stockage qui contient la list Des personnes :

    Class Personne :

    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
    public class class_personne {
       private String Nom;
       private String Prenom;
       private String Adresse ; 
       private Date DateNaissance ;
     
        public class_personne(String Nom, String Prenom, String Adresse, Date DateNaissance) {
            this.Nom = Nom;
            this.Prenom = Prenom;
            this.Adresse = Adresse;
            this.DateNaissance = DateNaissance;
        }
     
        public String getNom() {
            return Nom;
        }
     
        public void setNom(String Nom) {
            this.Nom = Nom;
        }
     
        public String getPrenom() {
            return Prenom;
        }
     
        public void setPrenom(String Prenom) {
            this.Prenom = Prenom;
        }
     
        public String getAdresse() {
            return Adresse;
        }
     
        public void setAdresse(String Adresse) {
            this.Adresse = Adresse;
        }
     
        public Date getDateNaissance() {
            return DateNaissance;
        }
     
        public void setDateNaissance(Date DateNaissance) {
            this.DateNaissance = DateNaissance;
        }
     
       public int getAge()
       { 
           Date d1 = new Date();  
    //        long a= d1.getTime()-this.DateNaissance.getTime();
            //int b=(int)a/(1000*60*60*24*30*12);
    //            return b;
          int c= d1.getYear()-DateNaissance.getYear();
          return c ;
       }
    Class Stockage :
    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
    public class Stockage {
        
        public static ArrayList <class_personne> lp = new ArrayList<class_personne>();
        
       public  static boolean exist(String n)
        {
           boolean t=false;
           for (int i=0;i<lp.size();i++){
               if (lp.get(i).getNom().equals(n)){
                 t=true; 
                   System.out.println(" ça existe ");
               }
           }
           return t;
        }
       public static void ajouter(class_personne p)
        {
            lp.add(p);
        }
       public  static void supprimer(String n)
        {
            for(int i=0 ; i <lp.size() ; i++)
            {
                if(lp.get(i).getNom() == n)
                {
                    lp.remove(i);
                }
            }
        }
    
       public  static void rechercher(String s,class_personne pers)
        {
            for( int i = 0 ; i< lp.size() ; i++)
            {
              if(lp.get(i).getNom().equals(s))
    //            if(lp.get(i).getNom().contains(s)) 
                {
                     System.out.println(lp.get(i));
                      
                     pers.setNom(lp.get(i).getNom());  
                     pers.setPrenom(lp.get(i).getPrenom());
                     pers.setAdresse(lp.get(i).getAdresse());
                     pers.setDateNaissance(lp.get(i).getDateNaissance());
    
                }
            }
            //------------------------------------
    //        Iterator i = lp.iterator();
    //        while(i.hasNext())
    //        {
    //            System.out.println(i.next()); 
    //            pers.setNom(lp.get(i).ge);
    //        }
        }
       public  static void modifier(String nom, class_personne pers)
        {
            for (int i = 0 ; i<lp.size(); i++)
            {
                if(lp.get(i).getNom().equals(nom))
                {
                    lp.get(i).setNom(pers.getNom()); 
                    lp.get(i).setPrenom(pers.getPrenom());
                    lp.get(i).setAdresse(pers.getAdresse());
                    lp.get(i).setDateNaissance(pers.getDateNaissance()); 
                }
    
            }
        } 
        
    }
    j'aia commencé à coder sur le bouton rechercher, ça ne fonctionne pas , j souhaite récupérer ce que j'ai ajouté dans mon ArrayList et l'afficher dans mes Jtext (je fait un ajout au préalable ) :

    AJOUTER

    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
     private void bntAjoutActionPerformed(java.awt.event.ActionEvent evt) {                                         
     
            JOptionPane j = new JOptionPane();
            if (jNom.getText().isEmpty() || jPrenom.getText().isEmpty()  || jAdress.getText().isEmpty()  ||jDN.getText().isEmpty())
           {
               j.showMessageDialog(null," error remplissez les champs  !!" , "error", JOptionPane.ERROR_MESSAGE);
           }
           else
           {
     
                      String getn= jNom.getText(); 
                     if (!Stockage.exist(getn))
                     {
                        //-------------------------------------------
    //                    JFormattedTextField jDN = new JFormattedTextField(new SimpleDateFormat("dd/MM/yy"));
                        String n= jNom.getText();      
                        String p=  jPrenom.getText();
                        String ad=  jAdress.getText(); 
    //                     DateFormat t = new SimpleDateFormat("dd/MM/yy");
                         Date dateParse =(Date) jDN.getValue();
                      //-------------------------------------------
                        class_personne c=new class_personne(n, p, ad, dateParse);
                        Stockage.ajouter(c); 
                        j.showMessageDialog(null ,n +" "+p+" "+ad+ " "+ dateParse ,"info", JOptionPane.INFORMATION_MESSAGE);
     
                        jNom.getText().equals("");      
                        jPrenom.getText().equals("");
                        jAdress.getText().equals("");
                        jDN.getText().equals(""); 
                     }
                     else  
                     {
                         Stockage.exist(getn);
                          j.showMessageDialog(null ," existe deja" ,"info", JOptionPane.INFORMATION_MESSAGE);
                     } 
           }
        }
    RECHERCHER

    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
    private void btnRechActionPerformed(java.awt.event.ActionEvent evt) {                                        
     
            JOptionPane j = new JOptionPane();
            String name = j.showInputDialog(null," nom : "," recherche par nom", JOptionPane.QUESTION_MESSAGE);
     
                        String p=  jPrenom.getText();
                        String ad=  jAdress.getText(); 
    //                     DateFormat t = new SimpleDateFormat("dd/MM/yy");
                         Date dateParse =(Date) jDN.getValue();
            class_personne  c = new class_personne(name, p, ad, dateParse);
            if (Stockage.exist(name))
            {
                Stockage.rechercher(name, c); 
            }
        }

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    Bonjour,

    Quesqui ne fonctionne pas exactement ?

    Es ce que vous avez une exception ?

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    quand j clique sur le bouton Rechercher rien ne se passe est ce que la méthode Rechercher est correcte ?
    je dois récupérer les éléments de ma list et les mettre dans mes JTextFiels

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par Kagami Voir le message
    quand j clique sur le bouton Rechercher rien ne se passe
    La boite de dialogue n'apparait pas?

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    désolée je rectifie : le InputDialog apparaît mais lorsque je tape un nom rien ne se passe et la boite de dialogue se ferme .

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    plusieurs remarques:

    tu fais un exists puis ensuite un recherche. Revoi tes méthodes, ça n'a pas de sens. Tu parcours deux fois la liste au lieu d'une avec ce genre de chose.
    Ta méthode exist test si name est égal au critère, mais ta méthode rechercher cherche si name contient le critère. C'est bof bof coté cohérence.
    Ta méthode recherche reçoi un objet à remplir avec les valeurs de l'objet trouvé. En général, soit on retourne l'objet trouvé, soit on en retourne une copie, on s'emmerde pas à faire un transfert vers un objet de stockage.

    Bon ça, c'est du détail pour la propreté. Maintenant ton problème principal. Une fois que t'a trouvé l'objet et transféré son contenu dans 'c', tu n'en fait rien, donc il ne se passe rien. Que voudrais tu que ton programme fasse?

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    je voudrais que s'il trouve la personne avec le name que j'ai tapé dans le InputDialog alors il m'affiche ses info dans le JText

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public  static void rechercher(String s,class_personne pers)
        {
            for( int i = 0 ; i< lp.size() ; i++)
            {
              if(lp.get(i).getNom().equals(s))
    //            if(lp.get(i).getNom().contains(s)) 
                {
                  // remplir les JText avec les info d'une personne selon son nom
                }
            }

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    ben dans ce cas met du code qui affiche ces infos dans le jtext, là tu n'en a pas, le compilateur ne va deviner ce qu'il doit faire.

  9. #9
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    excusez moi c'est là où je suis bloquée

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Oui, mais je ne vais pas écrire le code à ta place, faut que tu réfléchisse. Après ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
               Stockage.rechercher(name, c);
    Tu as un objet c qui contient les données. Tu veux les afficher où? De quoi as-tu besoin pour faire cette affichage?

  11. #11
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 285
    Points : 54
    Points
    54
    Par défaut
    bonjour,
    ..c'est fait .
    je vous remercie pour votre aide

Discussions similaires

  1. Rechercher dans une ArrayList
    Par Whinze dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 11/01/2013, 14h02
  2. Recherche dans une ArrayList
    Par SAKDOSS dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 11/01/2012, 10h58
  3. Recherche dans une ArrayList
    Par c-ve dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 10/07/2007, 11h22
  4. Réponses: 4
    Dernier message: 19/06/2007, 10h41
  5. [C#,débutante] recherche dans une arraylist
    Par MissLaLou dans le forum ASP.NET
    Réponses: 5
    Dernier message: 16/05/2007, 08h58

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