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 :

comparer deux 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
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Par défaut comparer deux ArrayList
    Bonjour,
    je suis "debutant" en java , je souhaite simuler un jeu de poker. Pour le jeu, je veux tester si une main est une combinaison paire, pour cela j'ai implémenté la méthode suivante :

    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
    	public  boolean isPaire(ArrayList<Cart> hand) {
                    ArrayList<Cart> values = new ArrayList<Cart>(); 
    		Iterator<Cart> it = hand.iterator();
    		int cmpt = 0;
    		while (it.hasNext()) {
    			values.add(it.next());
    		}
    		Iterator<Cart> iter = values.iterator();
    		while (it.hasNext()){
    				if (iter.next().compareTo(it.next()) == 0) /* 0 pour egal */
    					cmpt++;
    		}
    		if (cmpt == 2)
    			return true;
    		else
    			return false;
    	}
    je souhaite stocker toutes les cartes d'une main dans une liste que j'ai appellé values et comparer chaque carte dans hand avec les cartes dans values.

    mon compteur est toujours à zero ce qui veux dire que mon programme ne fait aucune comparaison, mon compareTo marche je pense que le probleme viens de mes iterator.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 43
    Par défaut
    Bonjour,
    Normalement, si tu as surchargé la méthode "equals" convenablement, tu peux écrire le code suivant. Je pense que ce code est un peu plus simple à lire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	public boolean isPair(ArrayList<Cart> hand) {
    		ArrayList<Cart> handTemp = new ArrayList<Cart>();
    		Iterator<Cart> iterator = hand.iterator();
    		Cart cart = null;
    		while (iterator.hasNext()) {
    			cart = iterator.next();
    			if (handTemp.contains(cart))
    				return true;
    			else
    				handTemp.add(cart);
    		}
    		return false;
    	}
    Surcharge de equals dans la classe Cart :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	@Override
    	public boolean equals(Object obj) {
    		return (obj instanceof Cart
    				&& ((Cart) obj).getXXXX().equals(getXXXX()));
    	}
    J'espère que cela pourra t'aider

    ______________
    http://blog.ostyn.fr

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/01/2005, 19h54
  2. comment comparer deux dates?
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 21h08
  3. [STRUTS] Tag Equal, comparer deux variables
    Par logica dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/06/2004, 12h01
  4. comparer deux string
    Par jul54 dans le forum MFC
    Réponses: 3
    Dernier message: 22/04/2004, 15h50
  5. [date] Comparer deux formats différents
    Par terziann dans le forum Requêtes
    Réponses: 17
    Dernier message: 21/07/2003, 15h21

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