Comment convertir un Arraylist en un tableau en Java

Créer un tableau à partir d'un ArrayList est facile. Cela grâce à la méthode toArray() de ArrayList  qui fait la conversion en une seule ligne et qui retourne un tableau d'objets.

La méthode java.util.ArrayList.toArray(T[]) retourne un tableau contenant tous les éléments de cette liste dans l'ordre naturel (du premier au dernier élément).

ArrayList t = new ArrayList();
t.add(1);
t.add(10.5f);
t.add("qlq ch");
//obtenir le tableau
Object[] obj = t.toArray();

Créer un tableau avec un type générique

Dans l'exemple précédent, notre ArrayList contenant des objets de types différents: int, string, double. Il existe des cas où le tableau contient un seul type et quand on le convertie on obtient un tableau d'objets. Pour que ces objets soient exploitables, on les convertie eux aussi vers le type souhaités mais, attention! La conversion se fait selon la généricité dans ArrayList<T>.

ArrayList t = new ArrayList();
t.add(34);
t.add(10);
t.add(54);
Object[] obj = t.toArray();

int[] obj_int = new int[obj.length];
for(int i=0; i < obj_int.length; i++)
//Convertir les objets en int
obj_int[i]=(int) obj[i];

Convertir un ArrayList<tableau> en une matrice

Ce code montre le cas d'une liste à l'intérieur d'une autre liste. Il existe d'autres cas List<Object[]> ou List<List<List<...>>>. L'exemple List<list> est le plus utilisé:

ArrayList tm = new ArrayList();
//remplir la liste
for(int i=0; i < list.size(); i++){
ArrayList al = new ArrayList();
for(int i1=0; i1 < list.size(); i1++)
//générer des nombres aléatoires
al.add(Math.random());
tm.add(al);
}

Object[][] mt = new Object[tm.size()][tm.get(0).size()];
for(int i = 0 ; i < tm.size(); i++)
//copier les valeurs dans chaque ligne du tableau
mt[i] = tm.get(i).toArray();

//affichage
for(int i=0; i < mt[0].length; i++){
for(int j=0; j < mt[0].length; j++)
System.out.print(mt[i][j]+" ");
System.out.println(" ");
}
Références:
Java.util.ArrayList.toArray(T[]) Method
Convert list to array in Java