Cómo convertir una matriz a ArrayList en Java
La pregunta es "¿Cómo convertir una matriz a ArrayList en Java?"
1
Elemento[] matriz = {nuevo Elemento(1),nuevo Elemento (2),nuevo Elemento(3)};
1. La respuesta más popular y aceptada es:
1
ArrayList
Primero, veamos la documentación del constructor ArrayList.
ArrayList(Collection extends E > c): construye una lista que contiene los elementos en un contenedor específico y la devuelve en el orden del iterador del contenedor.
Por lo tanto, el constructor hace lo siguiente:
1. Convertir el contenedor c en una matriz
2. Copiar la matriz en una ArrayList llamada "elementData " En la matriz
El código fuente del constructor ArrayList es el siguiente. El código fuente de ArrayList es el siguiente:
1234567
public ArrayList(Collection extends E> c) { elementData = c.toArray(); size = elementData.length; if (elementData .getClass() ! = Object[].class) elementData = Arrays.copyOf(elementData,size,Object[].class);}
2. p >Otra respuesta popular es:
1
List
Esta no es la mejor respuesta, porque el tamaño de la lista devuelto por asList() es fijo. De hecho, la lista devuelta no es java.util.ArrayList, sino una clase estática privada definida en java.util.Arrays. Sabemos que la implementación de ArrayList es esencialmente una matriz, y la lista devuelta por asList() es una lista de tamaño fijo respaldada por la matriz original.
1
list.add(new Element(4));
12
Excepción en el hilo "principal" java.lang .ClassCastException: java.util.Arrays$ArrayList no se puede convertir a java.util.ArrayList en collection.ConvertArray.java:22)
Otra solución
Esta solución es proporcionada por Otto
123
Elemento[] matriz = {nuevo Elemento(1), nueva Lista(2)}; );Collections.addAll(list,array);
4. Descripción del problema
Este problema no es difícil, pero es interesante. Todo programador de Java conoce ArrayList, pero es fácil cometer este error. Creo que es por eso que esta pregunta es tan popular. Si esta fuera una pregunta similar para una biblioteca Java de dominio específico, sería mucho menos popular.
Esta pregunta tiene muchas respuestas que ofrecen la misma solución, al igual que otras preguntas en StackOverflow. Supongo que cuando la gente quiere una respuesta a una pregunta, no les importa lo que digan los demás.