Arrylist

Fermé
jj1k - 8 juin 2017 à 18:42
 Utilisateur anonyme - 12 juin 2017 à 19:35
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 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 326
8 juin 2017 à 18:44
0
Utilisateur anonyme
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>>();

0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
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 :
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
12 juin 2017 à 19:35
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