Arrylist
jj1k
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour
ce code il crée une liste avec 4 ligne et chaque ligne comporte une seule case
comment je fais pour ajouter d'autre case à chaque ligne
ce code il crée une liste avec 4 ligne et chaque ligne comporte une seule case
import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList al = new ArrayList(); al.add(12); al.add("Une chaîne de caractères !"); al.add(12.20f); al.add('d'); for(int i = 0; i < al.size(); i++) { System.out.println("donnée à l'indice " + i + " = " + al.get(i)); } } }
comment je fais pour ajouter d'autre case à chaque ligne
2 réponses
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>>();
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.