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 :

Remplir un tableau à partir d'une valeur à l'intérieur de celui-ci


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 104
    Points : 102
    Points
    102
    Par défaut Remplir un tableau à partir d'une valeur à l'intérieur de celui-ci
    Bonjour à tous,

    Tout d'abord désolé pour le titre du post un peu bizarre et peu explicite, je n'ai pas mieux!

    Voici mon problème/exercice :
    Je cherche à remplir un tableau (2dimensions) avec des objets en fonction d'un objet prédéfini dans ce tableau. Mieux que des mots voici un petit schéma et l'état actuel de mon tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    null | null | null | null | null |  
    null | null | [0,0]| null | null |  
    null | null | null | null | null |  
    null | null | null | null | null |  
    null | null | null | null | null |
    Les objets à l'intérieur de chaque case du tableau sont de type Case avec 2 attributs (x et y). L'objet avec x=0 et y=0 est placé aléatoirement dans le tableau au lancement du programme et est représenté par [0,0] sur le schéma. Notez que dans le cas présent, cet objet est place à l'index [2][1] du tableau.

    Edit: Je précise qu'on connait la taille exacte du tableau. Mais ça doit fonctionner avec des tailles différentes (5x5, 10x10 ...)

    Je souhaite alors insérer dans toutes les autres cases du tableau les objets maCase avec les x et y correspondants.

    Exemple:
    La case juste au dessus de la case contenant l'objet maCase[x=0,y=0] doit contenir un object monAutreCase[x=0, y=1].
    La case juste à droite de la case contenant l'objet maCase[x=0,y=0] doit contenir un object uneAutreCase[x=1, y=0].

    Vous voyez le principe? Et bien je souhaite remplir toutes les cases de cette manière.

    Auriez-vous une idée?

    Merci.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Il te suffit d'itérer sur ton tableau et d'attribuer les coordonnées en fonction de celles de la case "origine" (x=2 et y=1 dans ton exemple).
    Un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int x0 = 2;
    int y0 = 1;
    int y = 0;
    for(CaseTab[] line : array) {
      for(int x = 0; x < xMax; x ++) {
        line[x] = new CaseTab(x - x0, y - y0);
      }
      y++;
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 104
    Points : 102
    Points
    102
    Par défaut
    Merci pour ta réponse.
    J'ai trouvé la solution d'une autre manière, enfin je pense qu'en soi, c'est le même mécanisme. Mais ta solution a le mérite d'être plus compréhensive puisqu'on itère sur une ligne, moi j'itère sur j, mais au final c'est kifkif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            for (int i = 0; i < this.dimX; i++) {
                for (int j = this.dimY - 1; j >= 0; j--) {
                    if (!(i == centreX && j == centreY)) {
                        mapGrid[i][j] = new Case(i - cityX, cityY - j);
                    }
                }
            }
    Et voici ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [0][0] : -2,1 | [1][0] : -1,1 | [2][0] : 0,1 | [3][0] : 1,1 | [4][0] : 2,1 |  
    [0][1] : -2,0 | [1][1] : -1,0 | [2][1] : 0,0 | [3][1] : 1,0 | [4][1] : 2,0 |  
    [0][2] : -2,-1 | [1][2] : -1,-1 | [2][2] : 0,-1 | [3][2] : 1,-1 | [4][2] : 2,-1 |  
    [0][3] : -2,-2 | [1][3] : -1,-2 | [2][3] : 0,-2 | [3][3] : 1,-2 | [4][3] : 2,-2 |  
    [0][4] : -2,-3 | [1][4] : -1,-3 | [2][4] : 0,-3 | [3][4] : 1,-3 | [4][4] : 2,-3 |
    Edit: les valeur entre crochet sont les indives du tableau, tandis que les chiffres séparés par des virgule sont les coordonnées.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/11/2012, 11h25
  2. [XL-2007] Remplir un tableau à partir d'une liste dans un autre onglet
    Par maymou27 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 20/06/2012, 14h34
  3. Remplir un tableau à partir d'une plage
    Par npopravka dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/03/2012, 13h09
  4. Suppression d'une ligne d'un tableau à partir d'une valeur de cellule
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/12/2010, 14h15
  5. Remplir un tableau à partir d'une valeur initiale
    Par Maliciouss dans le forum Pascal
    Réponses: 9
    Dernier message: 13/12/2009, 14h46

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