Supprimer un élément d'un tableau
Youssef.Idelhadj
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
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
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:
- Supprimer un élément d'un tableau
- Supprimer rond bleu whatsapp - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Impossible de supprimer un fichier - Guide
1 réponse
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 :
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 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; }