Convertir un tableau en un ArrayList en Java

Dans l'article précédent, on a vu comment convertir un ArrayList en un tableau avec exemple. Dans ce tutoriel, nous allons faire l'inverse: convertir un ArrayList en un tableau.

1) Copier les éléments du tableau vers l'ArrayList

Cette méthode consiste à parcourir les éléments du tableau et les recopier un par un dans un ArrayList.

import java.util.ArrayList;

public class ArraylistToTable {

public static void main(String[] args) {

ArrayList t = new ArrayList();
String[] classes = {"Health classes" ,"architecture online classes",
"electrician classes"};
//Copier les valeurs de obj dans t
List<String> al = (ArrayList<String>)toArrayList(classes);
//Affichage
for(int i=0; i < al .size(); i++)
System.out.println(al.get(i));
}

static <T>List<T> toArrayList(T[] Tableau){
List<T> al = new ArrayList<T>();
for(T obj: Tableau)
al.add(obj);
return al;
}
}

2) La méthode Arrays.asList()

La méthode Arrays.asList() fait la conversion en une seule ligne.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArraylistToTable {

public static void main(String[] args) {

String[] card = {"visaCard" ,"MasterCard" , "AmericanExpress"};

ArrayList al = new ArrayList(Arrays.asList(card));

//Affichage
for(int i=0; i < al.size(); i++)
System.out.println(al.get(i));
}
}
Sortie:

visaCard
MasterCard
AmericanExpress
Il faut éviter d'utiliser le type List parce que nous aurons deux problèmes:
  • La taille retournée par asList() est fixe, si vous supprimez ou ajoutez des éléments, vous devez le faire dans un new ArrayList() sinon vous aurez une exception UnsupportedOperationException.
  • Le tableau retrouné est relié au tableau original, si vous modifiez le tableau original, la liste va être modifiée aussi.
List l = Arrays.asList(card);
//Modifier le tableau original
card[0]="Neteller";

for(int i=0; i < l.size(); i++)
System.out.println(l.get(i));
Sortie

Neteller
MasterCard
AmericanExpress

3) La méthode Collections.AddAll()

Un autre moyen équivalent à asList() est l'utilisation de Collections.AddAll(). Cette méthode est plus performante et plus rapide et on peut dire que c'est le meilleur moyen pour faire la conversion en ArrayList.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class ArraylistToTable {

public static void main(String[] args) {

List al = new ArrayList();
String[] titres = {"titre1, titre2, titre3"};

Collections.addAll(al, titres);

//Affichage
for(int i=0; i < al.size(); i++)
System.out.println(al.get(i));
}
}
Sortie:

titre1
titre2
titre3