Supprimer un élément d'un tableau

Fermé
Youssef.Idelhadj Messages postés 14 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 17 mars 2016 - 21 nov. 2012 à 14:07
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 21 nov. 2012 à 14:54
Bonjour,

J'ai eu du mal à supprimer un élément d'un tableau en Java, parce que dans l'exercice demandait, on a pas le droit d'utiliser les ArrayList,List,...bref tout ce qui est dans la classe Collection, du coup on doit faire l'exercice juste en utilisant les tableaux, donc voilà mon code

public void supprimer (int supp){
for(i=0;i<tab.lentgh;i++)
{
if(tab[i]==supp)
{
nv_tab[i]=tab[i+1];
}
else
{
nv_tab[i]=tab[i+1];
}
}
en faite c une méthode ki prend en agrument l'élément à supprimer.
mais apparement mon code ne marche pas et il décale pas le nouveau tableau.

Merci d'avance
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
21 nov. 2012 à 14:54
Dans ton if, tu fais exactement la même chose que la condition soit vraie ou fausse, c'est comme si il n'y avait pas de condition, ce que tu fais est donc ceci :

public void supprimer (int supp)
{
    for(i=0;i<tab.lentgh;i++)
        nv_tab[i]=tab[i+1];
}

Cela va te provoquer une exception quand tu vas atteindre i=tab.length-1, puisque tu vas essayer d'accéder à tab[i+1], c'est à dire tab[tab.length], qui n'existe pas !

De plus, il est très maladroit d'utiliser des variables globales qui dépassent le cadre de la méthode (en particulier ton i, qui est tout ce qu'il y a de plus local). Une méthode comme celle-ci devrait être totalement autonome et ne pas dépendre du reste de la classe :

public static int[] supprimer(int[] tab, int supp)
{
     int[] nv_tab;
     // ...
     return nv_tab;
}
0