2 réponses
Chris 94
Messages postés
50978
Date d'inscription
mardi 8 janvier 2008
Statut
Modérateur
Dernière intervention
17 février 2023
7 335
8 juin 2017 à 18:44
8 juin 2017 à 18:44
Utilisateur anonyme
11 juin 2017 à 00:08
11 juin 2017 à 00:08
La manière dont tu as défini ton ArrayList ne te permet d'avoir qu'une ArrayList à 1 dimension. Si tu veux 2 dimensions, il faut faire une ArrayList d'ArrayList comme cela :
ArrayList<ArrayList<Object>> al = new ArrayList<ArrayList<Object>>();
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
11 juin 2017 à 00:22
11 juin 2017 à 00:22
Remarque : il vaut mieux privilégier les interfaces que les classes d'implémentation, c'est à dire utiliser List<E> plutôt que ArrayList<E>.
Cela permet d'avoir plus de flexibilité quant à la manière dont on construit la liste (par exemple avec Arrays.asList, un stream, etc.)
Remarque : depuis Java 7, il n'est plus nécessaire de mettre le type paramétré sur la classe d'implémentation, c'est uniquement une information utile au typage puisque de toute façon le type paramétré disparaît à la compilation.
Exemple :
Cela permet d'avoir plus de flexibilité quant à la manière dont on construit la liste (par exemple avec Arrays.asList, un stream, etc.)
Remarque : depuis Java 7, il n'est plus nécessaire de mettre le type paramétré sur la classe d'implémentation, c'est uniquement une information utile au typage puisque de toute façon le type paramétré disparaît à la compilation.
Exemple :
List<List<Object>> matrix = new ArrayList<>(); matrix.add(Arrays.asList(1, 2, 3, 4)); matrix.add(matrix.get(0).stream().map(Object::toString).collect(Collectors.toList()));
Oui, j'utilise plutôt de manière générale l'interface List que ArrayList mais j'avais pas envie de l'embêter avec ça (trop tard :x).
Quand au type paramétré, j'étais au courant de l'update mais j'ai voulu mettre l'accent dessus justement pour dire qu'une List peut très bien en contenir une autre pour avoir deux dimensions.
Quand au type paramétré, j'étais au courant de l'update mais j'ai voulu mettre l'accent dessus justement pour dire qu'une List peut très bien en contenir une autre pour avoir deux dimensions.