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) {
ArrayListt = 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;Sortie:
import java.util.Arrays;
import java.util.List;
public class ArraylistToTable {
public static void main(String[] args) {
String[] card = {"visaCard" ,"MasterCard" , "AmericanExpress"};
ArrayListal = new ArrayList (Arrays.asList(card));
//Affichage
for(int i=0; i < al.size(); i++)
System.out.println(al.get(i));
}
}
visaCardIl faut éviter d'utiliser le type List parce que nous aurons deux problèmes:
MasterCard
AmericanExpress
- 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);Sortie
//Modifier le tableau original
card[0]="Neteller";
for(int i=0; i < l.size(); i++)
System.out.println(l.get(i));
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;Sortie:
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class ArraylistToTable {
public static void main(String[] args) {
Listal = 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));
}
}
titre1
titre2
titre3