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 :

Affecter la valeur d'une variable dans un tableau pour chaque indice grâce à une boucle


Sujet :

Collection et Stream Java

  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut Affecter la valeur d'une variable dans un tableau pour chaque indice grâce à une boucle
    Bonjour à tous,

    Je bute sur un petit problème, ce n'est pas le seul ^^
    Mais j'essaye d'affecter la valeur d'une variable à un Array pour chaque indice+1 dans une boucle "for" , mais je n'ai pas trouvé la solution, peut être un problème syntaxique ou algorithmique.
    J'aimerais avoir un retour afin d'avoir des propositions pour récupérer la valeur d'une variable pour chaque indice de mon tableau, une fonction ou autre.

    Merci pour vos retours.

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Peux-tu nous montrer ton exemple de code qui ne compile pas ?

    A+
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut
    Oui bien sûr, mais c'est du challenge codeingame.
    Je montre la ligne qui bug avec le message d'erreur lors de la compilation.

    J'ai essayé ces solutions-là:

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ParticipantTrie[i].add(sommeParticipant);
    ParticipantTrie = ArrayUtils.add(sommeParticipant, i);
    ParticipantTrie[i] = Array(sommeParticipant);

    Et l'erreur lors de la compilation pour le dernier:
    error: cannot find symbol

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    ParticipantTrie = ArrayUtils.add(sommeParticipant, i);

    Voilà ma boucle complète:

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for (int i = 0; i < Participant.size(); i++) {
                sommeParticipant = (Participant.get(i)% N); //calcul la somme d'un participant
                if(sommeParticipant == 0 ) {
                    System.out.println("IMPOSSIBLE"); //si le participant n'a pas d'argent
                }else if(sommeParticipant > 0) {
     
                    //ParticipantTrie = Arrays.stream(array).mapToInt(Integer::intValue).toArray(Participant); 
                    // ParticipantTrie[i] = Array(sommeParticipant);
                    ParticipantTrie = ArrayUtils.add(sommeParticipant, i);
                    Arrays.sort(ParticipantTrie); //On trie notre tableau dans l'ordre croissant
     
                   }
                }


    Mais je ne trouve pas comment je pourrai affecter mes valeurs à mon tableau pour chaque indice+1 .

  4. #4
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 325
    Billets dans le blog
    12
    Par défaut
    Utilises-tu un IDE pour coder ? Ton erreur vient d'un problème de compilation, un élément à la ligne que tu indiques n'existe pas dans le scope.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut
    J'utilise l'IDE qu'il y a déjà sur le site CodeInGmae, je ne sais pas si tu connais ?
    Honnêtement, je ne comprends pas mon erreur, il indique l'erreur sur le "A" de Array, mais quand je change, ça va être sur le point, ou alors sur "ParticipantTrie", etc..
    à chaque fois que je change c'est aléatoire.

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut
    Je pense avoir trouvé quelque chose si ça peut aider.
    Le topic sert aussi à dépanner certaine personne qui serait dans le même cas de problème.

    Voilà ce que j'ai fais à la place:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Arrays.asList(ParticipantTrie).contains(sommeParticipant);
                    Arrays.sort(ParticipantTrie); //On trie notre tableau dans l'ordre croissant

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par eristoff72 Voir le message
    Je pense avoir trouvé quelque chose si ça peut aider.
    Aider à quoi ? Le code que tu montres ne répond même pas à ta question (comment affecter une valeur dans un tableau). Et surtout, Arrays.asList(ParticipantTrie).contains(sommeParticipant); ne sert strictement à rien (à part consommer du temps et de la mémoire), puisque ça convertit un tableau en List, et ça teste si une instance s'y trouve, mais sans récupérer/utiliser le résultat !

    L'affectation de valeur dans un tableau se fait par référence à l'indice de la valeur dans le tableau :
    tableau[i]=valeur; met la valeur valeur dans le tableau à l'indice i.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Membre très actif
    Homme Profil pro
    Développeur Logiciel
    Inscrit en
    Décembre 2015
    Messages
    230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2015
    Messages : 230
    Par défaut
    Oui, je suis d'accord avec toi, mais avec une ArrayList tu ne peux pas faire ça, j'ai un tableau dynamique et un autre static, je peux faire voir plus de code si tu veux, mais l'affectation de valeur par indice dans un tableau ne fonctionne qu'avec un tableau static.

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Une ArrayList n'est pas un tableau. Dire d'une ArrayList que c'est un tableau dynamique est biaisé.
    Maintenant, pour affecter une valeur dans une List (ArrayList ou autre), à un indice particulier, on peut utiliser sa méthode set(indice, valeur). Il faut que "l'indice existe" bien sûr, c'est-à-dire que la liste ait la taille suffisante. On pourrait écrire une méthode utilitaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static <T> void setValue(List<T> list, int index, T value) {
     
        if ( list.size()>index ) {
            list.set(index, value);
        }
        else {
            int comp = index-list.size();
            for(int i=0;i<comp; i++) {
                list.add(null);
            }
            list.add(value);
        }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. attribuer une valeur a une variable dans un tableau
    Par Fabthebug dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/01/2009, 14h12
  2. Réponses: 2
    Dernier message: 15/02/2008, 21h45
  3. Réponses: 5
    Dernier message: 04/04/2007, 16h11
  4. Réponses: 3
    Dernier message: 22/03/2007, 13h09
  5. Réponses: 5
    Dernier message: 17/06/2006, 21h13

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