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 :

Problème sur un tableau


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Par défaut Problème sur un tableau
    bonjour

    j'ai un tableau, qui contient plusieurs valeurs, dont des redondances,et je veux compter seulement le nombre des elements , mais une seule fois pour chacun

    exemple : si j'ai le tableau [1, 2, 1, 3, 2, 3, 2, 4, 3, 4] ... je devrai retourner 4

    je galere, bien qu'il me semble que j'ai un bon algo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	 int cpt = 0; int s=0; boolean ok = false;
     
    	 for (int i=0 ; i<tableau.length ; i++) 
     
    		{
    			for (s=i-1 ; s>0 ; s--)
     
    					{ if (tableau[i] != tableau[s]) ok = true; 
    						else break ;
     
    					} if (ok == true) cpt++;
     
    			}
    je voulais grace au booleen compter le nombre de fois ou l'élément apparait la 1ere fois ... mais ça marche pas, sur le tableau que j'ai donné comme exemple il me retourne 8
    PS : cpt est la variable qui contient le nombre que je cherche
    je vous remercie

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2004
    Messages
    247
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 247
    Par défaut
    Moi je serais toi, je crée une list à coté, pour chaque élement de mon tableau je regarde si ma liste le contiens, si oui je passe au suivant, si non je l'ajoute.
    Et apres tu retournes la taille de la liste.

    Je sais pas si c'est le mieux, mais pour moi c'est le plus simple.

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    tu peux aussi créer un Set à partir de ton tableau et retourner le nombre d'élément du set ...

  4. #4
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    +1 avec in
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int[] tableau = {1, 2, 1, 3, 2, 3, 2, 4, 3, 4};
     
    java.util.Set set = new java.util.HashSet();
    for (int i=0 ; i<tableau.length ; i++) {
        set.add(tableau[i]);
    }
    System.out.println(set.size());

  5. #5
    Membre expérimenté Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Par défaut
    Citation Envoyé par fnobb Voir le message
    +1 avec in
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int[] tableau = {1, 2, 1, 3, 2, 3, 2, 4, 3, 4};
     
    java.util.Set set = new java.util.HashSet();
    for (int i=0 ; i<tableau.length ; i++) {
        set.add(tableau[i]);
    }
    System.out.println(set.size());
    il copie pas les doublons ?

  6. #6
    Membre émérite
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Par défaut
    Ben non c'est l'un des avantages des Set

    dixit la javadoc "A collection that contains no duplicate elements"

Discussions similaires

  1. [MySQL] problème sur un tableau in array()
    Par cragoroth dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/12/2011, 14h54
  2. [PHP 5.3] Gros problème sur un tableau stdClass Object
    Par TrAsHeR dans le forum Langage
    Réponses: 2
    Dernier message: 29/08/2011, 17h43
  3. [XL-2010] 2 problèmes sur mon tableau
    Par philpyreneen dans le forum Excel
    Réponses: 6
    Dernier message: 30/07/2011, 08h19
  4. [CS3] Problème sur un tableau dynamique
    Par Yep_yep dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 16/09/2009, 13h08
  5. problème sur un tableau dynamique
    Par boss_gama dans le forum ASP
    Réponses: 9
    Dernier message: 24/08/2006, 17h27

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