IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Supprimer les éléments impairs d'une ArrayList


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 59
    Points : 62
    Points
    62
    Par défaut Supprimer les éléments impairs d'une ArrayList
    Bonjour,

    Je dois écrire un programme qui supprime les éléments d'une ArrayList dont l'index est impair.

    Je suis partie sur l'utilisation du modulo mais on m'a dit que la solution était encore plus simple, et je n'arrive pas à visualiser le problème.

    Quelqu'un saurait-il me guider un peu ?

    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 615
    Points
    21 615
    Par défaut
    Bonjour,

    Hmm... Je vois pas bien comment tu comptais faire avec le modulo.

    "Plus simple" je ne suis pas sûr. Il y a peut-être un truc que je ne vois pas.
    Déjà je sais pas s'il n'y a pas un truc dans la question : si j'élimine l'élément à l'index 1, alors un autre élément va se retrouver à sa place à l'index 1, et la seule manière de virer tous les indexes impairs, c'est de ne garder que l'index 0.

    Mais on peut aussi supposer que la question c'est : comment faire en sorte d'enlever la moitié des éléments, ceux qui avant l'opération étaient à un index impair.
    Si je voulais faire "simple" j'utiliserais juste l'Iterator. Et une boucle qui fait deux next() et un remove(). Ça enlève donc un élément sur deux, celui qui est à index impair.

    Si je voulais faire efficace, je ferais une boucle pour déplacer tous les éléments d'index pair vers l'index où ils doivent se retrouver à la fin, et après la boucle je divise la taille de la List par deux avec sublist() et clear(). Sur une ArrayList c'est O(n), bien mieux que la méthode précédente qui est O(n²)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 59
    Points : 62
    Points
    62
    Par défaut utilisation du iterator
    Bonsoir,

    Merci beaucoup, j'ai opté pour la seconde solution, celle du Iterator , car moi aussi j'avais pas compris le coup de la suppression des index impairs pour se retrouver qu'avec l'élément à l'index 0.

    Merci beaucoup encore une fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/06/2014, 16h12
  2. Réponses: 9
    Dernier message: 17/09/2013, 11h59
  3. lisp pour supprimer les éléments dans une surface
    Par ocni2000 dans le forum Lisp
    Réponses: 1
    Dernier message: 21/03/2012, 11h08
  4. Supprimer les éléments sélectionnés avec une case à cocher
    Par keishah dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 16/08/2007, 15h38
  5. Réponses: 12
    Dernier message: 04/03/2007, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo