Supprimer un élément d'une collection

Résolu
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009 - 28 mai 2007 à 23:54
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009 - 29 mai 2007 à 21:45
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

Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
29 mai 2007 à 19:59
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
3
didoux95 Messages postés 845 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 1 août 2017 2
29 mai 2007 à 00:57
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.
+
0
lafolle24320 Messages postés 406 Date d'inscription samedi 26 mars 2005 Statut Membre Dernière intervention 29 juin 2009 7
29 mai 2007 à 10:55
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
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
29 mai 2007 à 12:02
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
29 mai 2007 à 12:25
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
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
29 mai 2007 à 12:40
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
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
29 mai 2007 à 18:59
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
0
adrienr11vdv Messages postés 99 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 16 avril 2009
29 mai 2007 à 21:45
un grand merci, ca marche parfaitement.
maintenant, il faut espérer que sa aille pour l'examen
encore merci
0