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 :

Déclaration tableau 2 dimensions


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut Déclaration tableau 2 dimensions
    Bonjour, je souhaite afficher à partir d'une base de données les données qui respectent une certaine contrainte.

    J'ai besoin pour cela d'avoir un tableau par rapport à mon interface Java/Swing .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     you can initialize the row dimension without initializing the columns but not vice versa
     
        int[][] myArray = new int[5][];
        // illegal
        int[][] myArray = new int[][5];
    Or ici l'application que je ne vais pas développer fait ceci :

    Et donc je ne peux pas selon le théorème cité au dessus faire
    Object data[][] = new Object[][10];


    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
    16
     
     
        /** Vector of Object[], this are the data of the table */
        Object data[][] = new Object[100][10];
     
     
       data[i][0] = (String)v.elementAt(1) + " " + (String)v.elementAt(2);                      // Nom d'invité
                data[i][1] =  (String)v.elementAt(3) + " " + (String)v.elementAt(4);    // Nom de bénéficaire
                data[i][2] = (String)v.elementAt(7);      // Categorie
                data[i][3] = (String)v.elementAt(10);      // Organisation
                data[i][4] = (String)v.elementAt(9);      // Fonction
                data[i][5] = (String)v.elementAt(15);      // Vip
                data[i][6] = (String)v.elementAt(16);      // Type Badge
                data[i][7] = (String)v.elementAt(13);      // Venus
                data[i][8] = (String)v.elementAt(12);      // Cadeau
                data[i][9] = (String)v.elementAt(8);   // User
    Suffirait-t-il alors que j'inverse colonne et ligne dans ma matrice?
    merci.

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par cotede2 Voir le message
    Suffirait-t-il alors que j'inverse colonne et ligne dans ma matrice?
    Oui.
    Mais pourquoi tu ne veux pas allouer une taille dès le départ ? Tu seras obliger de le faire un jour ou l'autre dans ton programme.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre éclairé
    Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    Je connais pas d'avance combien de lignes je vais avoir
    des idées?

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par cotede2 Voir le message
    Je connais pas d'avance combien de lignes je vais avoir
    des idées?
    Ce n'est pas un soucis. Tu déclares le tableau avec une taille initiale. Au cours du remplissage, s'il devient trop petit, tu en créés un plus grand en recopiant les données dedans. C'est le fonctionnement des ArrayList et autre Vector.
    Une copie d'un simple tableau se fait par "System.arraycopy".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    Dans un premier temps il faut revenir au fonctionnement des tableaux d'objets en java. En java les tableaux d'objets contiennent des Objets, c'est objets peuvent être le type que l'on désire stocker. Mais ils peuvent également être des tableau. Il n'y a pas de vrai tableau multidimensionnelle en java.

    L'opération de transposition pose un autre problème en plus de la connaisance du nombre de ligne qu'il va falloir créer : pour bien faire il faudrait connaitre le types des colonnes, il n'est donc pas si simple de transposer proprement. Mais en supposant que tu stock uniquement des chaînes de caractères, tu peut le faire de la façon suivante : supposont que au départ tu es un tableau comme cela :
    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
    16
    17
    18
    19
    20
    21
     
    String[][] array = new String[][]{{"a","b","c","d"},{"a1","b1","c1"},{"a2","b2","c2","d2","e2"}};
    int maxlen = 0;
    for(String[] e : array)
    {
    if(e.length>maxlen){maxlen = e.length}
    }
     
    String[][] arrayt = new String[maxlen][];
    for(int i = 0 ; i < arrayt.length; i++)
    {
    arrayt[i] = new String[array.length];
    }
     
    for(int i = 0 ; i < array.length;i++)
    {
    for(int j = 0 ; j < array[i].length ; j++)
    {
    arrayt[j][i] = array[i][j];
    }
    }
    Le résultat sera une matrice rectangulaire, il y aura des éléments null quand il n'y a pas d'élément à transposer.

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

Discussions similaires

  1. déclaration dynamique tableau 2 dimensions
    Par boboss123 dans le forum C
    Réponses: 1
    Dernier message: 23/03/2015, 16h05
  2. déclaration tableau à M dimensions
    Par Dadeap dans le forum C
    Réponses: 9
    Dernier message: 31/05/2013, 20h30
  3. Déclaration Tableau 2 dimensions
    Par vincent.gad dans le forum Débuter
    Réponses: 5
    Dernier message: 21/11/2008, 18h02
  4. Réponses: 1
    Dernier message: 09/03/2006, 17h25
  5. [Tableaux] Déclaration d'un tableau à 2 dimensions
    Par kcizth dans le forum Langage
    Réponses: 5
    Dernier message: 04/01/2006, 15h35

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