2012-01-24 5 views
28

Quiero llenar un ArrayList con estos caracteres +, -, *,^etc. ¿Cómo puedo hacer esto sin tener que agregar todos los caracteres con arrayList.add()?Cómo usar ArrayList.addAll()?

Respuesta

65

Collections.addAll es lo que quiere.

Collections.addAll(myArrayList, '+', '-', '*', '^'); 

Otra opción es pasar la lista en el constructor usando Arrays.asList así:

List<Character> myArrayList = new ArrayList<Character>(Arrays.asList('+', '-', '*', '^')); 

Sin embargo, si usted es bueno con la arrayList ser de longitud fija, se puede ir con la creación tan simple como list = Arrays.asList(...). Arrays.asList specification indica que devuelve una lista de longitud fija que actúa como un puente hacia la matriz pasada, que podría no ser lo que necesita.

0

Puede ser que esto ayuda

List<String> l = Arrays.asList("+","-"); 
0

Uso Arrays clase en Java que le devolverá un ArrayList:

final List<String> characters = Arrays.asList("+","-"); 

se necesita un poco más de trabajo si necesita un List<Character>.

+0

En realidad, para que sea una 'Lista ' simplemente el cambio '" 'a' '' y 'List ' a 'List '. Generics manejará el resto. – bezmax

5

Asumiendo que tiene un ArrayList que contiene caracteres, usted puede hacer esto:

List<Character> list = new ArrayList<Character>(); 
list.addAll(Arrays.asList('+', '-', '*', '^')); 
+3

'Collections.addAll' es una mejor forma de hacerlo, ya que simplemente itera a través de elementos dados y los agrega a todos lista, mientras que con 'Arrays.asList' crearía un objeto' List' temporal para lograr el mismo resultado. – bezmax

+0

@Max Sí, tha Es cierto – Jesper

1

Usted puede utilizar el método asList con varargs hacer esto en una sola línea:

java.util.Arrays.asList('+', '-', '*', '^'); 

Si la lista no necesita ser modificado más allá de esto ya sería suficiente. De lo contrario puede pasarlo al constructor ArrayList para crear una lista mutable:

new ArrayList(Arrays.asList('+', '-', '*', '^')); 
3

Puede utilizar Google guayaba como tal:

ImmutableList<char> dirs = ImmutableList.of('+', '-', '*', '^');