web-dev-qa-db-fra.com

Comment créer une ArrayList 2D en Java?

Je veux créer un tableau 2D que chaque cellule est un ArrayList!

Je considère cette définition, mais je ne peux rien y ajouter. Ces définitions sont-elles vraies?!

ArrayList<ArrayList<String>> table = new ArrayList<ArrayList<String>>();

ou

ArrayList[][] table = new ArrayList[10][10];

//table.add??????

Aidez-moi, s'il vous plaît

18
Rezan

Je veux créer un tableau 2D dans lequel chaque cellule est une ArrayList!

Si vous voulez créer un --- array of ArrayList 2D, vous pouvez le faire:

ArrayList[][] table = new ArrayList[10][10];
table[0][0] = new ArrayList(); // add another ArrayList object to [0,0]
table[0][0].add(); // add object to that ArrayList
40
NINCOMPOOP

Le meilleur moyen est d'utiliser List avec in List

List<List<String>> listOfLists = new ArrayList<List<String>>();  
37
PSR

Tout d'abord, lorsque vous déclarez une variable en Java, vous devez la déclarer à l'aide d'interfaces même si vous spécifiez l'implémentation lors de son instanciation.

ArrayList<ArrayList<String>> listOfLists = new ArrayList<ArrayList<String>>();

devrait être écrit

List<List<String>> listOfLists = new ArrayList<List<String>>(size); 

Ensuite, vous devrez instancier toutes les colonnes de votre tableau 2D

    for(int i = 0; i < size; i++)  {
        listOfLists.add(new ArrayList<String>());
    }

Et vous allez l'utiliser comme ça:

listOfLists.get(0).add("foobar");

Mais si vous voulez vraiment "créer un tableau 2D que chaque cellule est une ArrayList!"

Ensuite, vous devez aller à la voie dijkstra .

26
Gab
ArrayList<String>[][] list = new ArrayList[10][10];
list[0][0] = new ArrayList<>();
list[0][0].add("test");
3
dijkstra

Ceci peut être réalisé en créant un objet de structure de données List, comme suit

List list = new ArrayList ();

Pour plus d'informations, consultez ce lien.

Comment créer une liste multidimensionnelle ArrayList en Java?

2
Rachana K