Est-il possible de créer dynamiquement un tableau multidimensionnel en Java?

Supposons que nous avons le code Java:

Object arr = Array.newInstance(Array.class, 5);

Serait que de courir? Par ailleurs, si nous étions à essayer quelque chose comme cela:

Object arr1 = Array.newInstance(Array.class, 2);
Object arr2 = Array.newInstance(String.class, 4);
Object arr3 = Array.newInstance(String.class, 4);
Array.set(arr1, 0, arr2);
Array.set(arr1, 1, arr3);

Serait arr1 alors un tableau 2D équivalente à:

String[2][4] arr1;

Comment à ce sujet: que faire si nous ne connaissons pas les dimensions de ce tableau jusqu'à exécution?

Edit: si cette aide (je suis sur que ça ferait...) nous essayons d'analyser un tableau de inconnue dimensions à partir d'une Chaîne de la forme

[value1, value2, ...]

ou

[ [value11, value12, ...] [value21, value22, ...] ...]

Et ainsi de suite

Edit2: Dans le cas où quelqu'un d'aussi stupide que je suis tente cette ordure, voici une version au moins compile et s'exécute. Si oui ou non la logique est son est une autre question tout à fait...

Object arr1 = Array.newInstance(Object.class, x);
Object arr11 = Array.newInstance(Object.class, y);
Object arr12 = Array.newInstance(Object.class, y);
...
Object arr1x = Array.newInstance(Object.class, y);
Array.set(arr1, 0, arr11);
Array.set(arr1, 1, arr12);
...
Array.set(arr1, x-1, arr1x);

Et ainsi de suite. Il a juste à être un géant, un tableau imbriqué d'Objets

  • c'est ce que les Collections sont pour...regarder ArrayList<String>
  • Bon, point. Que faire si nous avons besoin d'avoir ceci dans un tableau natif de forme et non pas une liste de tableaux. Si c'est un multi-dimension ArrayList, sera toArray gérer les Listes imbriquées?
  • Non, il vous donnera un tableau de ArrayLists.
  • pour avoir une primitive array ( String[][] ) que vous utilisez : Liste.toArray méthode, voir ma réponse.
  • Viens de comprendre à partir de ceci que vous pouvez créer un Object[] tableau, qui peut contenir des tableaux, comme les tableaux sont des objets. Cela signifie que vous pouvez arbitrairement nid des tableaux sans explicite la Dimension de la matrice de frappe
InformationsquelleAutor Jordan | 2010-06-23