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 :

parcour d'un ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Par défaut parcour d'un ArrayList
    Bonjour

    j'essai depuis quelques jour de parcourir un arraylist de façon aléatoir et d'enregistrer l'element aléatoir du vecteur... j'ai réussi

    Sauf que maintenant il faut que je les élément déja visité lors du dernier parcour ne sois plus visité une seconde fois

    exemple :

    si mon vecteur est |1|2|3|4|5|6|

    apres un parcour aléatoire un vecteur est créer : |2|2|3|1|5|6|4|5|5|2|1|

    c'est le résultat voulu, sauf que je ne veut pas de répétition successif ,c'est a dire que je ne veut pas de |2|2| ou |5|5| ; deux element voisin doivent être différent

    ma question est que doit-je modifier dans mon code pour ne pas avoir un |2|2| ou |5|5| ?

    Merci infiniment pour vôtre aide

    Code : Java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
     
    for (int j = 0; j < 10; j++ ) {
     
                        do {//choix d'un indice aléatoire entre O et la taille du vecteur tmp
                   	randIndex = (int) (Math.random()*tmp.size());             
                  }
               while (tmp.contains(randIndex));
     
                      //lire l'indice aléatoire générer
                      d =tmp.get(randIndex);
     
                      //ajout de d au vecteur                 
                      vecteur.add(d);
     
                        }

  2. #2
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    C'est quoi la difference entre tmp et vecteur?

    Sinon avec le code il suffit d'ajouter un test si c'est cette valeur est differente de la valeur du dernier element avant d'inserer dans le vecteur

  3. #3
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    java.util.Collections shuffle est ton ami
    tu peux soit bousculer aléatoirement une arrayList
    soit créer une ArrayList qui contiendra les index de 0 à N (sous forme de Integer), puis tu la "shuffle" et tu récupères les index pour aller chercher tes éléments.
    bon c'est juste une idée ....

  4. #4
    Membre confirmé
    Homme Profil pro
    Webmarketer
    Inscrit en
    Octobre 2008
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Octobre 2008
    Messages : 191
    Par défaut
    En tant qu'utilisateur peu expérimenté du java, personnellement je créerais une variable int dans laquelle je mettrais le numero du tableau que ton random a sorti et ecrit dans le second vecteur. ça permet quand tu va faire ton deuxieme random de le comparer avec un if et si les deux chiffres sont identiques alors tu refais le rand.
    donc par exemple tu fais x=d avant de le mettre dans ton vecteur final
    et après au moment du random suivant si rand==x alors tu refais sinon x=d et tu insert.Je ne voudrais pas te dire de betises je ne suis pas un pro du java ++

  5. #5
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 74
    Par défaut
    En reprenant l'idée de shadoko.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // on initialise notre première liste
    List<Integer> liste = Arrays.asList(1, 2, 3, 4, 5, 6);
     
    // on en fait une copie pour le parcours
    List<Integer> parcours = new ArrayList<Integer>(liste);
     
    // on mélange
    Collections.shuffle(parcours);
     
    // on affiche le résultat
    System.out.println(parcours);

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Par défaut
    merci infiniment , votre aide m'as été très précieuse j'ai finalement réussi a le faire grace à vous

    encore une fois merci ,

    nouvelle étape afficher cette arraylist dans une JTable, je me rensigne sur la doc et je re

    merci encore

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Par défaut
    Citation Envoyé par bob3333 Voir le message
    merci infiniment , votre aide m'as été très précieuse j'ai finalement réussi a le faire grace à vous

    encore une fois merci ,

    nouvelle étape afficher cette arraylist dans une JTable, je me rensigne sur la doc et je re

    merci encore
    Vous ne sauriais pas par hasard comment afficher un arraylist dans une jtable, je vois que sa n'afficher que des Objetc[][]?

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

Discussions similaires

  1. Temps de parcours d'une ArrayList
    Par Amnael dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 06/05/2015, 13h15
  2. Problème parcours/recherche arbre-ArrayList
    Par tibet_gang dans le forum Collection et Stream
    Réponses: 0
    Dernier message: 07/02/2011, 10h13
  3. Parcours d'un ArrayList
    Par dsryam dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/12/2010, 19h06
  4. Problème avec parcours d'une ArrayList et Iterator
    Par Raiden1234 dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 30/03/2008, 21h16
  5. [Débutant][ArrayList]parcours et recherche d'objets
    Par codexomega dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 19/02/2006, 18h14

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