2012-05-10 21 views
111

Duplicar posible:
Converting array to list in JavaConvertir matriz de cadenas arrayList

Quiero convertir String matriz para ArrayList. Por ejemplo String array es como:

String[] words = new String[]{"ace","boom","crew","dog","eon"}; 

Cómo convertir esta matriz de cadenas a ArrayList?

+19

+1; ahora es el segundo enlace en google. –

+1

ArrayList a = new ArrayList <> (Arrays.asList (words)); –

+0

Puedes hacerlo de 3 formas básicas. Usando Collections.addAll, Arrays.asList y streams en Java 8 - Referencia - http://www.codingeek.com/java/how-to-convert-array-to-list-in-java/ –

Respuesta

205

Use este código para que,

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

public class StringArrayTest { 

    public static void main(String[] args) { 
     String[] words = {"ace", "boom", "crew", "dog", "eon"}; 

     List<String> wordList = Arrays.asList(words); 

     for (String e : wordList) { 
     System.out.println(e); 
     } 
    } 
} 
+11

En resumen, todo lo que necesita es la línea 'List wordList = Arrays.asList (words); '. ¿Es esto correcto? – Keale

+0

@ Kele Si 'words' es una matriz de cadenas, entonces, sí. –

+8

Cuidado: Arrays.asList (...) crea una Lista abstracta, no una lista real. Por lo tanto, puede hacer cosas como wordList.sort ((a, b) -> a.length() - b.length()), pero no puede hacer wordList.remove (0) ni agregarle. Esto lanzará UnsupportedOperationException. –

20
String[] words= new String[]{"ace","boom","crew","dog","eon"}; 
List<String> wordList = Arrays.asList(words); 
+5

El resultado aquí es una 'Lista', pero no una' ArrayList'. –

+4

@MarkoTopolnik tienes razón, esto tiene que ser envuelto tan Lista wordList = new ArrayList (Arrays.asList (words)); – Scorpion

127
new ArrayList(Arrays.asList(new String[]{"abc", "def"})); 
+2

creo que esta solución es mejor porque 'Arrays.asList' devuelve un' java.util.Arrays.ArrayList.ArrayList (T []) 'así que si intenta' agregar' algo, obtendrá 'java.lang.UnsupportedOperationException' –

+1

Si tiene una cantidad limitada de elemenets en la matriz, se puede escribir como nueva ArrayList (Arrays.asList ("abc", "def")); –

+0

Para evitar advertencias IDE, 'new ArrayList <> (...)' funcionó para mí en comparación con 'new ArrayList (...)' (observe el '<>'). –

9

en la mayoría de los casos el List<String> debería ser suficiente. No es necesario crear una ArrayList

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

...

String[] words={"ace","boom","crew","dog","eon"}; 
List<String> l = Arrays.<String>asList(words); 

// if List<String> isnt specific enough: 
ArrayList<String> al = new ArrayList<String>(l); 
28

Usando Collections#addAll()

String[] words = {"ace","boom","crew","dog","eon"}; 
List<String> arrayList = new ArrayList<>(); 
Collections.addAll(arrayList, words); 
+5

Me gusta esta solución. Es conciso y limpio. –

Cuestiones relacionadas