Bonsoir,
Comme ceci :
ArrayList<String>[][] assemblage = new ArrayList[10][10];
On aurait tendance à utiliser ceci (dans un souci de maintenance) :
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 :
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)
Partager