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

Langage Java Discussion :

plusieurs conditions avec foreach


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Par défaut plusieurs conditions avec foreach
    Bonjour !
    Je n'arrive pas a faire plusieurs condition dans une boucle foreach
    du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (Object elmt : liste && .... )||(..){}
    il ya bien une solution avec un break mais ya til un autre moyen.
    J'ai regardé sur google, mais je ne trouve pas de solutions.
    Autre question, quelqu'un aurait t'il un site bien fait sur tiger?
    Merci.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par decksroy
    Je n'arrive pas a faire plusieurs condition dans une boucle foreach
    la boucle foreach n'est pas faite pour cela, mais pour parcourir tout les éléments !

    Mis à part le break, il faut alors utiliser l'Iterator "comme au bon vieux temps"


    Citation Envoyé par decksroy
    Autre question, quelqu'un aurait t'il un site bien fait sur tiger?
    Tiger: la révolution de Java 5

    Après ca dépend de ce que tu veux traiter en particulier... mais il n'y a pas vraiment de site "special tiger"...

    a++

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Par défaut
    Justement avant je le faisais avec un iterator, et je m'amuse a le faire en 1.5 ou je n'y connais rien
    je voudrais dans ce foreach ajouter un boolean a la condition
    du style ; && good=true
    C'est sur ya pas moyen?
    d'ailleurs j'ai une autres question a propos du foreach
    voyez ce code :
    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
    18
    19
     
    while(!items.isEmpty()){
    			good=false ;
    			MenuTreeListItem menuList = vector.firstElement() ;
    			for(MenuTreeListItem element : items){
    				if(element.getNumParent().equals(menuList.getNumItem())){
    					menuList.addChild(element);
    					vector.insertElementAt(element,0);
    					items.remove(element);
    					good = true;
    				}
    				if(!good)break;
     
    			}
    			if(!good)
    			{
    				vector.removeElementAt(0);
    			}
    		}
    J'ai l'exception : java.util.ConcurrentModificationException au moment du deuxieme tour dans le for
    Kesako?
    Si ca peut aider j'ai l'ancienne version en 1.4 qui marche.
    Merci.

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Concernant la boucle for, il faut utiliser la forme classique si l'on veut finasser avec la condition ; ou, comme te le dis adiGuba, se faire son petit iterator. (Et plus précisement un Iterable).

    Concernant l'exception, je pense que c'est parce que tu modifies la collection sur laquelle tu boucles dans ta boucle, par l'instruction items.remove.... Si tu veux faire cela, il faut passer par l'itérator (et donc par la forme classique de la boucle for), sur le modèle iterator.remove....

    (ou mieux, ne pas du tout modifier la collection parcourue pendant le traitement, solution que j'applique toujours et qui me parait la plus éléguante). (sauf en de trés rares exceptions qui confirment la règle).

  5. #5
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    Concernant l'exception, je pense que c'est parce que tu modifies la collection sur laquelle tu boucles dans ta boucle, par l'instruction items.remove.
    Exact. Il ne faut pas le faire.
    ou mieux, ne pas du tout modifier la collection parcourue pendant le traitement, solution que j'applique toujours et qui me parait la plus éléguante
    C'est ce qu'il faut faire. Petite note : on écrit "élégante" .

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 331
    Par défaut
    J'abuse peut etre un peu, mais pourriez vous me donner la solution sans modifier la collection parcourue.
    En attendant j'y reflechis un peu...
    Merci.

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

Discussions similaires

  1. [MySQL] Mise à jour de plusieurs colonnes avec foreach
    Par budiartaaa dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 09/11/2010, 22h53
  2. Having avec plusieurs conditions ?
    Par jchatard dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/04/2007, 15h58
  3. Si je fais un if() avec plusieurs conditions ..
    Par Pauli dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2007, 16h47
  4. like avec plusieur condition
    Par wayak3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2007, 11h43
  5. [ Struts ] plusieurs conditions avec equal?
    Par njac dans le forum Struts 1
    Réponses: 7
    Dernier message: 04/06/2004, 09h04

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