Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arraylist listItertor et remove

tous en même temps

    19 juin 2009 à 19:01:31

    salut
    voila je cherche à supprimer un élément de ma liste son que listItertor s'arrête (parcourir une liste tout en supprimant des élément)??
    car avec mon code j'ai exception qui se lance
    public static void main(String[] args) {
            Final test=new Final();
         test.remplir();
        ListIterator<GroupeF> it =test.malist.getlist().listIterator();
        while(it.hasNext()){
         GroupeF tmp1=(GroupeF) it.next();
         int  idg=tmp1.getIdGroupe();
         int idp=tmp1.getIdProjet();
    
          test.malist.getlist().remove(test.malist.getlist().get(2));//je supprime l'élément 2
         System.out.println("le idGroupe est "+idg+"le idProjet"+idp);
     }
    


    • Partager sur Facebook
    • Partager sur Twitter
      19 juin 2009 à 20:01:03

      Tu ne peux pas enlever d'éléments dans une liste pendant que tu es en train de la parcourir, sauf si tu utilises la méthode remove de l'itérateur lui-même.
      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2009 à 20:56:29

        Tu peux tout simplement parcourir la liste et enregistrer dans une autre liste les éléments a supprimer. il ne te reste plus qu'a faire Collections.remove(Lst_Normale, LstaSup);
        • Partager sur Facebook
        • Partager sur Twitter
        J'ai tous les badges d'OpenClassrooms.
          19 juin 2009 à 21:29:16

          merci willard mais ta pas un lines vers la documentation Collections.remove(Lst_Normale, LstaSup); car je l'ai jamais utilise ,je ne sais pas ce que il fait et ce que il retourne ??

          merci d'avance
          • Partager sur Facebook
          • Partager sur Twitter
            19 juin 2009 à 21:39:46

            Excuse moi, c'est plutot MaListe.removeAll(Maliste)

            la doc : http://java.sun.com/j2se/1.4.2/docs/ap [...] llection.html
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai tous les badges d'OpenClassrooms.
              19 juin 2009 à 21:57:43

              merci donc par exemple
              public static void main(String[] args) {
                      Final test=new Final();
                      test.remplir();
                      Final test2=new Final();
              
               for(int i = 0; i < test.malist.getlist().size(); i++){
                   GroupeF tmp1=(GroupeF) test.malist.getlist().get(i);
                   int  idg=tmp1.getIdGroupe();
                   int idp=tmp1.getIdProjet();
                
                  for(int j = i+1; j < test.malist.getlist().size(); j++){
                    GroupeF tmp=(GroupeF) test.malist.getlist().get(j);
                   if(tmp.getIdGroupe()== idg|| tmp.getIdProjet()==idp){
              			test2.malist.ajouter(new GroupeF(tmp.getIdGroupe(),tmp.getIdProjet(),tmp.getPriorite(),tmp.getNote()));
                   //=new GroupeF(res.getInt("idGroupe"),res.getInt("idProjet"),res.getInt("numPriorite"),res.getDouble("noteGr")
              			 }
                   
                
               }
              
              
                   }
              
               test.malist.getlist().removeAll(test2.malist.getlist());
               System.out.println("liste final");
               System.out.println("");
              
                   ListIterator<GroupeF> li =test.malist.getlist().listIterator();
                  while(li.hasNext()){
                      GroupeF tmp=(GroupeF) li.next();
                        System.out.println("le idGroupe est "+tmp.getIdGroupe()+" le idProjet"+tmp.getIdProjet());
              
                  }
              
               }
              


              test.malist.getlist().removeAll(test2.malist.getlist()); ne marche pas

              ??


              • Partager sur Facebook
              • Partager sur Twitter

              Arraylist listItertor et remove

              × 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