2010-09-19 19 views

Respuesta

37

Usted puede utilizar Arrays.asList():

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

o, alternativamente, Collections.addAll():

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

Nota que técnicamente no eres asignar una matriz a una lista (bueno, no puedes hacer eso), pero creo que este es el resultado final que estás buscando.

+0

¡Esta respuesta es mejor que la mía! –

+0

Su '' está fuera de lugar. – missingfaktor

+0

@Missing Gracias, fijo – NullUserException

6

La clase Arrays contiene un método asList que se puede utilizar de la siguiente manera:

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

Esto devuelve una lista de tamaño fijo de cadenas de encapsulados por algún tipo privado que implementa la interfaz Lista . La respuesta de @ NullUserException es la mejor si necesita una instancia de java.util.ArrayList que sea mutable. –

+0

Richard, solo quería saber por qué la lista de arriba se está volviendo de tamaño fijo? ¿No puedo agregar otro elemento a la misma lista en la línea siguiente ... como wordList.add (anotherStringElement); – peakit

+0

Ese es el comportamiento definido del método asList. Como @NullUserException señala, debe convertir a ArrayList [ArrayList aList = new ArrayList (Arrays.asList (words)] para obtener una ArrayList a la que pueda agregar más elementos. –

1

Si está importando o tiene una matriz (de tipo cadena) en su código y tiene que convertirla en una lista de arrays (cadena de conversación), entonces el uso de colecciones es mejor. así:

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

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