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 :

Manipuler un tableau 2D de String dans les 2 dimensions


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Par défaut Manipuler un tableau 2D de String dans les 2 dimensions
    Bonjour,

    je dispose d'une table de String
    Je découpe par la suite chacune de ces chaînes en sous-chaines
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myStringData.split("\\t");
    Je ne peux pas prédire le nombre de sous-chaînes que j'obtiendrais, mais j'homogénéise ce nombre par la suite (System.arraycopy + padding avec des chaînes vides par rapport au nombre maximum obtenu).

    J'ai donc au final une collection de tableaux de chaînes que je souhaiterais manipuler à la manière d'un tableur : accès par (sous-)ligne, (sous-)colonne, ou un élément à la fois.
    C'est ici que je pêche... : N'étant qu'un intermittent du Java, je n'en connais que des conteneurs classiques, et aucun ne semble convenir à ce genre de manipulation.
    Si l'accès à une des dimensions ne pose aucun problème (ligne à ligne dans mon cas), je n'arrive pas à trouver une astuce qui me permettrait d'accéder proprement à une colonne. Par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTableauDeLignes.getColumnAtIndex("3")
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonTableauDeLignes.getSubColumnForName("ID",3,7)
    ...
    J'ai bien vu les JTable, mais elles ne me semblent vraiment pas conforme à ce que ce que j'appelle une solution "propre".

    Merci d'avoir lu ma question, et d'avance pour vos éventuelles conseils.

    PS : vous aurez peut-être constaté que j'ai déjà une certaine difficulté à formuler ma question, ce qui pourrait expliquer que je n'ai pas encore trouvé de réponse.

  2. #2
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Bonjour,

    Tu as un tableau de String,
    Tu découpes ensuite chaque String en un tableau de String à l'aide de la méthode split. Ou stockes tu ce tableau?

    Je suppose que tu stockes ensuite le tout dans une matrice (un tableau de tableau) de String, si c'est le cas tu peux accéder à chaque case du tableau:
    matrice[x][y];

    Maintenant je n'ai pas compris la fin .
    Tu voudrais une classe qui possède ce genre de méthode qui te renvoi tout une colonne ou tout une ligne?

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Par défaut
    Bonjour, et merci pour ton invervention.

    Pour l'instant, je traite les lignes une à une ...
    Je ne stocke pas mes String sous la forme d'un tableau 2D tel que tu l'écris (matrice[x][y];) car ça ne résout pas mon problème principal...
    Et à son sujet, tu as effectivement bien compris mon problème : je voudrais manipuler ma table de Strings un peu comme on le fait sous Matlab* (si tu connais!), en accédant indifféremment à une colonne, ligne, ou élément.
    La table 2D classique ne permet que 2 des trois opérations en question (autant que je sache!) : accès à un élément et accès à une ligne.

    *Sous matlab, ça prendrait la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A=["toto" "tata" "titi";"jean" "pierre" "paul";"Courgette" "Endive" "betterave"];

  4. #4
    Membre éclairé
    Homme Profil pro
    NoOb
    Inscrit en
    Mai 2007
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : NoOb

    Informations forums :
    Inscription : Mai 2007
    Messages : 554
    Par défaut
    Ok donc je te propose d'utiliser quelque chose comme une ArrayList<ArrayList<String>>. Une liste de liste de String.

    La tu pourras récupérer une colonne (une liste de String pour le coup), par contre pour les lignes c'est plus compliqué .
    Peut être qu'une lib propose ce genre de chose sinon tu peux coder un modèle de données toi même avec une méthode qui te propose de récupérer une ligne
    (qui va chercher dans chaque colonne à tel index la String correspondante et qui la charge dans une nouvelle liste).

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Par défaut
    Merci de cette réponse.. même si je la redoutais

    Je vais continuer à chercher un peu une lib qui va bien (ça m'étonnerait que qqn n'y ait pas pensé avant moi!) et à défaut je ferai ma propre classe comme tu le suggères.

    Merci encore!

Discussions similaires

  1. Recherche d'une String dans les valeurs d'une HashMap
    Par 4rocky4 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 04/05/2011, 15h24
  2. Recuperer les valeurs d'un string dans un tableau
    Par lasrevinu dans le forum C#
    Réponses: 4
    Dernier message: 12/04/2010, 15h57
  3. Réponses: 4
    Dernier message: 06/10/2009, 10h44
  4. Réponses: 165
    Dernier message: 03/09/2009, 15h35
  5. Crypter ou obfusquer les String dans les .class
    Par Luke58 dans le forum Langage
    Réponses: 12
    Dernier message: 14/08/2009, 11h24

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