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

avec Java Discussion :

Resultat d'une Fonction


Sujet :

avec Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Par défaut Resultat d'une Fonction
    Bonjour,

    J'aurais besoin de votre aide car je me posais une question sur le fonctionnement d'un bout de code que j'ai eu lors d'un partiel de JAVA cette année, n'ayant pas eut la correction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import java.util.*
     
    public class Find (
            public statis void main(String[] args) {
                   Set<String> s = new HashSet<String>();
                   for (String a : args){
                        if (!s.add(a))
                            System.out.println(a);
                        }
                   System.out.println(s.size() + "???" + s);
            }
    }
    Sachant que for (String a : args) {} indique que l'on traite un par un tous les arguments suivant "toto" "titi" "toto" "tata" "titi"

    Qu'affiche ce programme ?

    C'est surtout la ligne !s.add(a) que j'ai du mal à comprendre

    Est-ce qu'il fait System.out.println(a) lorsqu'il a réussi à l'insérer ou lorsqu'il n'y a plus d'insertion à faire ?

    Et qu'affiche-t-il pour le 's' dans System.out.printl(s.size() + "???" + s);

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Bonsoir,

    d'après le code je dirais qu'il affiche le dernier argument qui n'a pu être empilé s'il y a lieu ( argument déjà présent... trop d'arguments ? ou pas assez de mémoire ?)

    puis le nombre d'éléments effectivement dans le HashSet et '???' puis le HashSet.

    un indice peut-être : un HashSet est un ensemble.

    cordialement,
    jk.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Par défaut
    Merci pour ta réponse.

    Donc le programme affiche :
    1???HashSet(?)
    2???HashSet(?)
    3???HashSet(?)
    4???HashSet(?)
    5???HashSet(?)
    Titi (car tout les arguments on été inséré donc il écrit le dernier inséré ?)
    5???HashSet(?)

    Si j'ai bien compris ...

    Par contre je comprend pas qu'est ce qu'il peut afficher par HashSet 's' ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Allez un autre indice : par définition un ensemble ne contient pas de doublon.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Par défaut
    Ah mais oui !!!! Merci pour ta réponse je comprend.

    Mais pour le 's' qu'elle peut-être sa valeur en display parce que il a pas de nom le HashSet

  6. #6
    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
    Excusez mon effarement, mais vous ne pouvez pas exécuter ce programme sur un ordi et voir ce qu'il donne ??

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set<String> s = new HashSet<String>();
    déclare un Set s et l'instancie en HashSet.

    Tu ajoutes ensuite"toto" et titi".

    Hop le prochain argument "toto" bloque car il est déjà dans le HashSet, on l'affiche :
    >toto

    puis on affiche la taille du HashSet suivi de ??? puis le toString du HashSet :
    >2???[titi, toto]

    Un HashSet contient une méthode toString par défaut qui renvoie un String contenant toutes les valeurs du HashSet.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Par défaut
    Citation Envoyé par gifffftane Voir le message
    Excusez mon effarement, mais vous ne pouvez pas exécuter ce programme sur un ordi et voir ce qu'il donne ??
    En faite ce bout de programme était dans mon partiel de JAVA que j'ai eut en fin d'année et comme j'ai un rattrapage à faire dans cette matière et qu'on a eu aucun corriger je souhaitais le refaire et je bloquais sur cette exo.

    Donc pour répondre, ce programme est pédagogique. L'intitulé de l'exercice était 'Sachant que for (String a : args) {} indique que l'on traite un par un tous les arguments suivant "toto" "titi" "toto" "tata" "titi" ' je doute en effet qu'il s'exécute .

    Sinon merci jksn_jk pour tes réponses j'ai tout bien compris maintenant

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    de rien, et bonne chance pour ton exam !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    heu une précision : il s'exécute bien...

    à ce ceci près d'un point virgule, d'une accolade et d'un static à la place de statis.

    il retourne :
    >toto
    >2???[titi, toto]

  11. #11
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    294
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 294
    Par défaut
    Citation Envoyé par jksn_jk Voir le message
    heu une précision : il s'exécute bien...

    à ce ceci près d'un point virgule, d'une accolade et d'un static à la place de statis.

    il retourne :
    >toto
    >2???[titi, toto]
    ça serait plutôt ça la bonne solution

    toto
    titi
    3???[titi, toto, tata]

Discussions similaires

  1. [PRO*C] affectation du resultat d'une fonction
    Par gadjou dans le forum Interfaces de programmation
    Réponses: 1
    Dernier message: 06/12/2006, 08h50
  2. Réponses: 1
    Dernier message: 14/06/2006, 17h21
  3. Réponses: 1
    Dernier message: 19/04/2006, 15h29
  4. Réponses: 4
    Dernier message: 18/01/2006, 11h33
  5. garder en memoire un resultat d'une fonction
    Par khadidja dans le forum C++
    Réponses: 6
    Dernier message: 26/07/2004, 15h52

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