Conurbateur
Messages postés2Date d'inscriptionmercredi 25 mars 2009StatutMembreDernière intervention 4 avril 2009
-
4 avril 2009 à 16:33
Conurbateur
Messages postés2Date d'inscriptionmercredi 25 mars 2009StatutMembreDernière intervention 4 avril 2009
-
4 avril 2009 à 22:36
Bonjour,
Je cherche à créer une méthode pour supprimer les "0" dans un tableau, j'utilise donc cette méthode :
import java.util.*;
public class Test {
public static int[] SupprimerZero(int[] tab) {
Vector v = new Vector();
for(int i=0; i<tab.length; i++){
if(tab[i] != 0){
v.add(i, tab[i]);
}
}
int[] tab3 = new int[v.size()];
for(int i=0; i<tab3.length; i++){
tab3[i] = (Integer)v.get(i);
}
return(tab3);
}
}
Seulement quand je l'appelle dans mon main avec " int[] tableau4 = Test.SupprimerZero(tableau3);" le tableau3 ayant pour valeur [0 0 1 1 5 6] et que je l'exécute il m'affiche :
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 22 > 0
at java.util.Vector.insertElementAt(Vector.java:551)
at java.util.Vector.add(Vector.java:760)
at Test.SupprimerZero(Test.java:16)
at Abstract.main(Abstract.java:67)
Le logiciel m'indique que l'erreur vient de "v.add(i, tab[i]);" Mais je ne comprend pas d'où vient cette erreur. Si quelqu'un pouvait m'aider à résoudre ce problème :)