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 :

passer un tableau d'entier par valeurs à une fonction


Sujet :

Collection et Stream Java

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut passer un tableau d'entier par valeurs à une fonction
    Je sais qu'on peut avoir du mal à en voir l'utilité mais est-il possible de passer un tableau d'entiers par valeurs à une fonction?

    J'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maFonction([1,3]);
    ainsi que moultes variantes mais "ça ne marche pas" ...

    merci

  2. #2
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    de tête essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maFonction({1,3});
    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  3. #3
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    Pourquoi ne pas faire une copie de ton tableau a passer et passer le clone de ce dernier?(j'ai bien peur qu'il n'est pas autre moyen)
    Citation Envoyé par mavina
    Salut,
    de tête essaie ceci :

    F.
    Non ça marche pas je crois que ça fais plutot allusion à une enumeration ça
    @+
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  4. #4
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Eh bien je me suis dit que comme tu pouvais déclarer un tableau comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int[] t={1,2,3,1};
    tu pouvais le passer en paramètre de la même manière

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  5. #5
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Après test, en effet ma solution ne fonctionne pas, au temps pour moi.

    Il n'est donc pas possible de faire ce genre de choses à priori.

    F.
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  6. #6
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    est ce que c'est ca que vous cherchez?

    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
     
    public static void main(String[] args) {
            int[] vals = {1, 2, 3, 4, 5, 6, 7, 8, 9};
            passage1(new int[]{vals[0], vals[4], vals[6]});
            passage2(vals[0], vals[4], vals[6]);
     
        }
     
        public static void passage1(int[] rec) {
        //...
        }
     
        public static void passage2(int... rec) {
        //...
        }
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  7. #7
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut
    Citation Envoyé par eclesia Voir le message
    est ce que c'est ca que vous cherchez?

    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
     
    public static void main(String[] args) {
            int[] vals = {1, 2, 3, 4, 5, 6, 7, 8, 9};
            passage1(new int[]{vals[0], vals[4], vals[6]});
            passage2(vals[0], vals[4], vals[6]);
     
        }
     
        public static void passage1(int[] rec) {
        //...
        }
     
        public static void passage2(int... rec) {
        //...
        }
    Pas vraiment mais la solution y est!!!

    merci !

  8. #8
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    j'ai pas tout compris sur ce coup la .
    c'etait quoi que tu voulais???


    [edit] haa c'est ca que tu cherchais non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void main(String[] args) {
            int[] vals = {1, 2, 3, 4, 5, 6, 7, 8, 9};
            passage2(vals);        
        }
      
        public static void passage2(int... rec) {
        //...
        }
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  9. #9
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Cool eclesia (j'en profite pour apprendre moi aussi)
    j'aurai parier quil cherchais ça
    Citation Envoyé par eclesia
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void main(String[] args) {
            int[] vals = {1, 2, 3, 4, 5, 6, 7, 8, 9};
            passage1(new int[]{vals[0], vals[4], vals[6]});
     
        }
     
        public static void passage1(int[] rec) {
        //...
        }
    Juste je voudrais savoir une chose moi,le tableau passé en parametre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new int[]{vals[0], vals[4], vals[6]}
    est stoké ou?et comment ça passe dans la memoire?c'est tableau temporaire ?qui meurt à quel moment de l'execution du code?ou tout simplement c'est carement l'equivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tab[]=new int[]{vals[0], vals[4], vals[6]
    Et c'est comme si on passait "tab" en parametre ,donc ça rejoint cette histoire de copie.
    @+
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  10. #10
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 108
    Points : 3 203
    Points
    3 203
    Par défaut
    et bien oui c'est un nouveau tableau. une copie si tu veux.
    declaré le tableau directement dans l'appelle réduit sa portée au minimum, de plus ce tableau est "anonyme", donc aucune chance qu'il soit réutilisé ailleur.

    perso j'aime bien les solutions en varargs (les ...)
    Systèmes d'Informations Géographiques
    - Projets : Unlicense.science - Apache.SIS

    Pour un monde sans BigBrother IxQuick ni censure RSF et Les moutons

  11. #11
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    merci pour l'explication
    Juste une derniere chose est-ce que cette methode est conseillé?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

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

Discussions similaires

  1. passer un tableau php en parametre d'une fonction js
    Par maxwel56 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/05/2012, 16h51
  2. Passage de liste par valeur à une fonction
    Par mayadev dans le forum Général Python
    Réponses: 7
    Dernier message: 23/02/2010, 16h14
  3. Réponses: 2
    Dernier message: 22/12/2009, 15h01
  4. Passer un tableau PHP en argument dans une fonction javascript ?
    Par The Molo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/05/2007, 12h31
  5. Réponses: 2
    Dernier message: 03/10/2005, 22h16

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