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 :

un tableau de tableau :)


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Par défaut un tableau de tableau :)
    Bonjour,
    je veux faire un truc très simple :

    [KEY, [ [id,id],[id,id],..],... ]

    dois je utiliser Hasmap ou autre?
    si vous avez un exemple de code pour faire ca je suis preneur

    Hervé

  2. #2
    Membre éclairé Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Une TreeMap par exemple :

    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
                // Construction :
                TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
     
                // Ajout d'éléments :
                treeMap.put(4, "exemple 1");
                treeMap.put(1, "exemple 2");
     
                // Get :
                String s1 = treeMap.get(4);
                String s2 = treeMap.get(1);
     
                // Parcours :
                for(Map.Entry<Integer, String> element : treeMap.entrySet()) {
                    int id = element.getKey().intValue();
                    String s = element.getValue();
                }
    Là j'ai fait une TreeMap<Integer, String> mais tu peux utiliser n'importe quel type (le type de la clé doit être comparable cependant). Par exemple TreeMap<String, ArrayList<String>> pour associé une liste d'élément à une clé.

    Pour plus de détail voir la javadoc de TreeMap.

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Ce n'est pas vraiment explicite mais bon...je pense que tu n'as qu'à faire comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[][] tab = {{"toto", "titi"}, {"g"}, {"a", "b"}, {"tresg", "test"}};
    System.out.println(tab[2][1]); // affiche b
    Si tu veux un système de clé/valeur, il faut utiliser une HashMap<String, String[]> par exemple.

  4. #4
    Membre éclairé Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    A mon avis il faut de bons arguments pour motiver l'utilisation des tableaux... C'est affreux à utiliser et source de beaucoup d'erreurs.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut
    Tu peux utiliser un vecteur et tu ajoute à chaque case tout type d'objet que tu veux, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Vector v=new Vector();
    int tableau=new int[10];
    // ajouter le tableau à la fin duvecteur
    v.add(tableau);
    // tu peux ajouter d'autre types d'objets au même vecteur comme les int, String
    int i=0;
    v.add(i);
    L'avantage des vecteurs est que tu peux ajouter n'importe quel type d'objet au vecteur et tu ne fixe pas à priori une taille prédéfinie au vecteur

  6. #6
    Membre éclairé Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Citation Envoyé par choko83 Voir le message
    Tu peux utiliser un vecteur et tu ajoute à chaque case tout type d'objet que tu veux, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Vector v=new Vector();
    int tableau=new int[10];
    // ajouter le tableau à la fin duvecteur
    v.add(tableau);
    // tu peux ajouter d'autre types d'objets au même vecteur comme les int, String
    int i=0;
    v.add(i);
    L'avantage des vecteurs est que tu peux ajouter n'importe quel type d'objet au vecteur et tu ne fixe pas à priori une taille prédéfinie au vecteur
    Ah bein comme ça on ne risque pas de ClassCastException au moins...

  7. #7
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Citation Envoyé par choko83 Voir le message
    Tu peux utiliser un vecteur et tu ajoute à chaque case tout type d'objet que tu veux, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Vector v=new Vector();
    int tableau=new int[10];
    // ajouter le tableau à la fin duvecteur
    v.add(tableau);
    // tu peux ajouter d'autre types d'objets au même vecteur comme les int, String
    int i=0;
    v.add(i);
    L'avantage des vecteurs est que tu peux ajouter n'importe quel type d'objet au vecteur et tu ne fixe pas à priori une taille prédéfinie au vecteur
    La classe Vector est à proscrire, c'est un reste de Java 1.2 qui ne devrait plus être utilisé sauf besoin spécifique. Il faut utiliser à la place la classe ArrayList qui fournit les mêmes interfaces.

    Les méthodes de la class Vector sont synchronisées et cela abaisse les performances.

  8. #8
    Membre éclairé Avatar de fatypunk
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 71
    Par défaut
    Citation Envoyé par CheryBen Voir le message
    La classe Vector est à proscrire, c'est un reste de Java 1.2 qui ne devrait plus être utilisé sauf besoin spécifique. Il faut utiliser à la place la classe ArrayList qui fournit les mêmes interfaces.

    Les méthodes de la class Vector sont synchronisées et cela abaisse les performances.
    Très juste !

    HashMap ou TreeMap me semble les solutions les plus adaptées (éventuellement tableau si justifié).

    Si une clé n'a pas de sens on peut aussi faire une ArrayList<ArrayList<Integer>> pour être proche du sens de Integer[][].

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

Discussions similaires

  1. [Tableaux] un tableau de tableau ??
    Par hitchie dans le forum Langage
    Réponses: 13
    Dernier message: 24/01/2006, 16h35
  2. Problème avec un tableau de tableau
    Par SubZero2 dans le forum Langage
    Réponses: 4
    Dernier message: 07/12/2005, 15h25
  3. [Tableaux] tableau de tableau
    Par Kerod dans le forum Langage
    Réponses: 4
    Dernier message: 26/11/2005, 19h30
  4. Réponses: 21
    Dernier message: 21/11/2005, 09h52
  5. [langage] Probleme de tri d'un tableau de tableau
    Par Ludo167 dans le forum Langage
    Réponses: 1
    Dernier message: 25/08/2004, 10h32

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