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

avec Java Discussion :

Créer une matrice de listes LinkedList<String>[][]


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Créer une matrice de listes LinkedList<String>[][]
    Bonsoir,
    j'essaie désespérément de créer une matrice de liste LinkedList<String>[][] mais Eclipse ne veut pas reconnaitre ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class MatrixNussinov {
    	int[][] M;
    	LinkedList<String>[][] assemblage;
     
    	MatrixNussinov(String arne) {
    		assemblage = new LinkedList<String>[10][10]();
                    .....
    Comment implémenter une telle matrice? Il semble que Eclipse ne peut pas créer de matrice de liste...
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Bonsoir,

    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<String>[][] assemblage = new ArrayList[10][10];
    On aurait tendance à utiliser ceci (dans un souci de maintenance) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<String>[][] assemblage = new ArrayList[10][10];
    Le problème est que tu ne pourra pas utiliser ta liste car le contenu aura comme valeur celle par défaut, c'est à dire null.

    A partir de la seconde dimentions tu te retrouve bloqué, ca part en boucle pour l'initialisation (pas très élégant).

    Pour se charger de cela je te propose une solution plus elegante utilisant du lazy loading.

    il te suffira de créer une méthode qui instanciera tes éléments de ta liste au besoin et passer uniquement par celle-ci.

    Voici un code possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            public static List<String> fromList(List<String>[][] list, int i, int j) {
                if (list[i][j] == null) {
                    list[i][j] = new ArrayList<String>();
                }
                return list[i][j];
            }
     
            public static void main(String[] argv) {
                List<String>[][] assemblage = new ArrayList[10][10];
                fromList(assemblage, 0, 5).add("toto");
            }
    Il existe peut être un solution plus élégante (instanciation d'un coup, mais je n'en ai pas la réponse)

Discussions similaires

  1. [Macro-Word] Créer une matrice d'exigences
    Par Matespace dans le forum VBA Word
    Réponses: 5
    Dernier message: 24/05/2007, 10h56
  2. Créer une matrice symétrique à partir de 3 colonnes
    Par vincent550 dans le forum MATLAB
    Réponses: 3
    Dernier message: 10/04/2007, 13h35
  3. Créer une matrice en manipulant un vecteur
    Par bernard6 dans le forum MATLAB
    Réponses: 3
    Dernier message: 07/04/2007, 11h34
  4. Créer une matrice k-diagonale
    Par Mathusalem dans le forum MATLAB
    Réponses: 6
    Dernier message: 29/05/2006, 11h56
  5. Créer une zone de liste modifiable
    Par ALX79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 27/10/2005, 16h09

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