Retirez le même nombre d'une liste de tableaux

J'ai créer une méthode qui a une liste de tableaux; j'ai besoin de supprimer des numéros de cette liste de tableaux. J'ai écrit du code, mais il y a une erreur de logique, je ne pouvais pas identifier.

Voici mon code:

static void sortList(){

   List <Integer> number=new ArrayList <Integer>();

   number.add(11);
   number.add(45);
   number.add(12);
   number.add(32);
   number.add(36);

   System.out.println("Unsorted List: "+number);

   for (int i=0;i<number.size();i++){      
       int even=number.get(i)%2;       
        if (even==0){
            System.out.println("This is Even Number:"+ number.get(i));
            number.remove(i);
        }    
    }

    Collections.sort(number);
    System.out.println("Sorted List: "+number);

 }

La sortie du code est:

Unsorted List: [11, 45, 12, 32, 36]
This is Even Number:12
This is Even Number:36
Sorted List: [11, 32, 45]

Je me demande pourquoi 32 n'est pas pris comme un nombre pair, car c'est un nombre pair, j'ai testé ensuite, à l'aide de différentes le même nombre au même poste, mais le résultat est le même. Pourquoi au niveau de l'index(3) il n'arrive que tout nombre pair n'a pas pu être prises. Je me demande vraiment pourquoi. Donc, svp quelqu'un peut m'aider pour cela et est-il un autre de meilleure façon de mettre en œuvre cette solution.

Grâce

  • Vous sont en train de modifier la liste lors de l'itération sur elle. Une solution simple consiste à itérer vers l'arrière sur la liste.