2011-04-21 5 views
1

j'ai un ArrayList avec ObjectArrays comme ceci:Comment créer Object [] [] de ArrayList <Object[]> en java

ArrayList<Object[]> objectList = new ArrayList<Object[]>(); 

je voudrais le convertir en:

Object[][] objectListAsArray = ... 

Ma première pensée était de convertir la liste avec objectArrays en un tableau:

objectList.toArray() 

... mais ce sera ne retourner qu'un seul Object[]. Quelqu'un peut-il m'aider à trouver une solution?

Cordialement mmm ...

+0

Puis-je vous demander pourquoi vous auriez besoin d'un tableau de tableaux d'objets? C'est une chose étrange que je n'ai pas vue utilisée souvent. Je n'ai vu que des tableaux multi-dim pour les primitifs, etc., pour des raisons mathématiques. L'utilisation d'objets de cette façon est, au mieux, étrange. Peut-être il y a une meilleure solution à un plus gros problème –

+0

Salut Java Drinker, désolé pour la réponse différée. J'ai besoin du tableau d'objets multi-dimensionnel pour le fournisseur de données [TestNGs] (http://testng.org/doc/documentation-main.html#parameters-dataproviders). –

Répondre

9
Object[][] array = list.toArray(new Object[list.size()][]); 

Comme Pierre a noté, votre Object[] seront partagées entre la liste et le tableau. Si vous voulez des tableaux différents, vous devez parcourir la liste et copier les tableaux.

+3

Oui, c'est celui-là. Vous pouvez même supprimer 'maxArraySize':' list.toArray (nouvel objet [list.size()] []) ' –

+0

oui, bon point. – Bozho

+0

toArray() fait une copie superficielle de ArrayList. –

3

Juste essayer que:

Object[][] objectListAsArray = objectList.toArray(new Object[0][]); 
+1

non, ce ne sera pas ... – Bozho

+0

Non, vous devez fournir une taille pour les "lignes" dans le tableau 2D. Cela ne compile pas (pourquoi les upvotes?!). –

+0

@jfpoilpret - ne compile pas - bonne idée mais petite erreur (malheureusement) –

Questions connexes