Arrylist

jj1k -  
 Utilisateur anonyme -
Bonjour

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

Chris 94 Messages postés 54087 Date d'inscription   Statut Modérateur Dernière intervention   7 345
 
0
Utilisateur anonyme
 
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>>();

0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 :
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()));
0
Utilisateur anonyme
 
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.
0