2010-09-19 3 views

Répondre

37

Vous pouvez utiliser Arrays.asList():

Type[] anArray = ... 
ArrayList<Type> aList = new ArrayList<Type>(Arrays.asList(anArray)); 

ou bien, Collections.addAll():

ArrayList<Type> aList = new ArrayList<Type>(); 
Collections.addAll(theList, anArray); 

Remarque que vous n'êtes pas techniquement assigner un tableau à une liste (bien, vous ne pouvez pas faire cela), mais je pense que c'est le résultat final que vous recherchez.

+0

Cette réponse est meilleure que la mienne! –

+0

Votre '' est égaré – missingfaktor

+0

@Missing Merci, corrigé – NullUserException

6

La classe Arrays contient une méthode asList que vous pouvez utiliser comme suit:

String[] words = ...; 
List<String> wordList = Arrays.asList(words); 
+2

Cette retourne une liste de taille fixe de chaînes encapsulées par un certain type privé qui implémente l'interface la liste . La réponse de @ NullUserException est la meilleure si vous avez besoin d'une instance de java.util.ArrayList qui est mutable. –

+0

Richard, je voulais juste savoir pourquoi la liste ci-dessus est devenue de taille fixe? Je ne peux pas ajouter un autre élément à la même liste dans la ligne suivante .. comme wordList.add (anotherStringElement); – peakit

+0

C'est le comportement défini de la méthode asList. Comme @NullUserException indique que vous devriez convertir en ArrayList [ArrayList aList = new ArrayList (Arrays.asList (words)] afin d'obtenir une ArrayList à laquelle vous pouvez ajouter d'autres éléments –

1

Si vous importez ou avez un tableau (de type string) dans votre code et que vous devez le convertir en arraylist (string offcourse) alors l'utilisation de collections est meilleure. comme ceci:

String array1[] = getIntent().getExtras().getStringArray("key1"); or 
String array1[] = ... 
then 

List<String> allEds = new ArrayList<String>(); 
Collections.addAll(allEds, array1); 
Questions connexes