java - convertir - arrays aslist integer
Cómo agregar elementos en la lista cuando se usa Arrays.asList() (5)
Arrays.asList (), genera una lista que en realidad está respaldada por una matriz y es una matriz que se transforma en una lista. Puede usarlo como una lista, pero no puede hacer ciertas operaciones en él, como agregar nuevos elementos. Así que la mejor opción es pasarlo a un constructor de otro objeto de lista como este:
List<T> list = new ArrayList<T>(Arrays.asList(...));
No podemos realizar la <Collection>.add
o <Collection>.addAll
en las colecciones que hemos obtenido de Arrays.asList
... solo se permite la operación de eliminación.
Entonces, ¿qué sucede si me encuentro con un escenario en el que necesito agregar un nuevo elemento en la List
sin eliminar los elementos anteriores en la List
? ¿Cómo puedo conseguir esto?
Crea una nueva ArrayList
usando el constructor:
List<String> list = new ArrayList<String>(Arrays.asList("a", "b"));
El Constructor para una colección, como ArrayList, en el siguiente ejemplo, tomará la matriz como una lista y construirá una nueva instancia con los elementos de esa lista.
List<T> list = new ArrayList<T>(Arrays.asList(...));
http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#ArrayList(java.util.Collection)
Puedes sortear el ArrayList
intermedio con flujos de Java8:
Integer[] array = {1, 2, 3};
List<Integer> list = Streams.concat(Arrays.stream(array),
Stream.of(4)).collect(Collectors.toList());
Esto debería ser bastante eficiente, ya que solo puede iterar sobre la matriz y también asignar previamente la lista de destino. Puede o no ser mejor para arreglos grandes. Como siempre, si importa tienes que medir.
Una forma es construir una nueva ArrayList
:
List<T> list = new ArrayList<T>(Arrays.asList(...));
Habiendo hecho eso, puedes modificar la list
tu gusto.