Supprimer un élément d'une collection

Résolu
Signaler
Messages postés
99
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2009
-
Messages postés
99
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2009
-
bonjour à tous,
je développe une collection et j'aimerai y ajouter une méthode qui permet d'enlever un objet de la collection.
voici ma méhode:
    //supprime l'objet d'index unIndex de la collection
    public void enleverObjet(int unIndex)
    {
        //Déclaration et initialisation des variables locales
        int i = 1;       
        int x;
        //Suppression du compte
        tab_abonnement[unIndex] = null;
        //Remise en ordre de la collection
        for (x = i; x <= cpt_abonnement-1; x++)
        {
            tab_abonnement[x] = tab_abonnement[x + 1];   
        }   
    }

Apparammen avec se code, je supprime tout donc j'aimerai avoir de l'aide.
merci d'avance
coordialelement

8 réponses

Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

avec un java.util.ArrayList (ou java.util.Vector si tu veux de la synchronisation )  ça donne un truc genre :

ArrayListList c'est que comme [auteurdetail.aspx?ID=477889 lafolle24320] le souligne dans ton cas il n'y a strictement aucune raison d'utiliser des tableaux (qui risque de provoquer plus de bug qu'autre chose dans ce que tu nous montres).

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
845
Date d'inscription
mardi 25 avril 2006
Statut
Membre
Dernière intervention
1 août 2017
2
Salut.
essaye avec ca:

//supprime l'objet d'index unIndex de la collection
    public void enleverObjet(int unIndex)
    {
        //Déclaration et initialisation des variables locales
        int i = unIndex;       
        int x;
        //Suppression du compte
        tab_abonnement[unIndex] = null;
        //Remise en ordre de la collection
        for (x = i + 1; x <= cpt_abonnement-1; x++)
        {
            tab_abonnement[x] = tab_abonnement[x - 1];   
        }   
    }

je croi que l'algo est correct. Si il ne l'est pas, l'idée de départ est que, comme tu as supprimé un élément, il y a un "trou". Donc tous les éléments qui se situes après le "trou", on les décal de un cran vers l'arrière.

j'pense que cela peut être une solution.
+
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
29 juin 2009
7
Bonjour,
Je n'arrête pas de voir des posts de ce genre .... supprimer un lément d'un tableau.... et je me pose une question : n'est on pas dans un forum java... avec des objets type ArrayList qui sont encore plus puissant que des tableaux de base???? Mais pouruoi ils s'e...... à utiliser des tableaux..... devrait ils pas utiliser du c si il veulent faire de cette façon?

Enfin tous çà pour dire quand java ce type de problème n'existe pas... vous vous les créé.... en java le premier travail a effectué et de regarder ce qui existe déjà au lieu de vouloir tout récréer ... d'où la puissance de ce langage.

Enfin bon si vous voulez rester avec vos tableaux changez de langage sinon citez moi un avantage d'utiliser un tableau au lieu d'une ArrayList par exemple.

Bonne journée

lafolle
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

ouaiis rebelle-toi vas, bien que je partage entierement ton avi sur les tableaux en java.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
99
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2009

tout d'abord, merci pour l'info des ArrayList.
Mais le truc, c'est que je dois créer une collection pour mes PTI.
Je pense qu'il est préférable de developper soi-même les méthodes d'ajout et de suppression
voila
Pour info, la solution ne marche pas.

coordialement
Messages postés
5365
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
12 août 2021
111
Salut,

tu peux redef ou surcharger les méthodes d'ajout/modification et suppression d'une Liste sans etre obligé de te prendre la tete avec un tableau de plus il existe en java la méthode trimToSize qui fait exactement ce que tu cherches à faire depuis le début

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
Messages postés
99
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2009

c'est sur que cela simplierai pas mal de chose mais je ne sais pas trop comment m'y prendre.
en fait, je possède une classe abonnement qui me permet de saisir le nom, prénom,... des abonnés.
Mon but serai donc de faire une collection de cette classe.
c'est pour cela que j'ai utilisé un tableau.
Voici la déclaration de ma collection.
   
   public class Collection ()
      {
         //Déclaration du tableau d'objet
         private Abonnement tab_abonnement[];
         //Déclaration du compteur de cellule utilisé dans le tableau
         private int compteur;
         //Déclaran du nombre maximum d'objet que pourra recevoir le tableau
         private int nb_max
      }

voila, si quelqu'un pouvait m'orientai dans la bonne direction
merci d'avance
Messages postés
99
Date d'inscription
jeudi 13 juillet 2006
Statut
Membre
Dernière intervention
16 avril 2009

un grand merci, ca marche parfaitement.
maintenant, il faut espérer que sa aille pour l'examen
encore merci