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 à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    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
    Futur 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
    Points : 9
    Points
    9
    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 à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    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
    Futur 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
    Points : 9
    Points
    9
    Par défaut
    Allez un autre indice : par définition un ensemble ne contient pas de doublon.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    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 émérite
    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
    Points : 2 582
    Points
    2 582
    Par défaut
    Excusez mon effarement, mais vous ne pouvez pas exécuter ce programme sur un ordi et voir ce qu'il donne ??
    Mieux que Google, utilisez Sur Java spécialisé sur la plate-forme java !
    Pour réaliser vos applications Java dans le cadre de prestations, forfait, conseil, contactez-moi en message privé.

  7. #7
    Futur 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
    Points : 9
    Points
    9
    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 à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    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
    Futur 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
    Points : 9
    Points
    9
    Par défaut
    de rien, et bonne chance pour ton exam !

  10. #10
    Futur 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
    Points : 9
    Points
    9
    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 habitué
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Points : 188
    Points
    188
    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, 07h50
  2. Réponses: 1
    Dernier message: 14/06/2006, 16h21
  3. Réponses: 1
    Dernier message: 19/04/2006, 14h29
  4. Réponses: 4
    Dernier message: 18/01/2006, 10h33
  5. garder en memoire un resultat d'une fonction
    Par khadidja dans le forum C++
    Réponses: 6
    Dernier message: 26/07/2004, 14h52

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