pass into from convertir como asarray array java

java - into - pass arraylist to array



Recuperar la matriz primitiva después de la inserción en una ArrayList de matrices primitivas en Java (4)

List<double[]> x = new ArrayList<double[]>(); x.add(new double[]={1,2,3,4,54,6});

Se añaden elementos 1,2,3,4,54,6 a x

x.get(0) ---> returns 1

¿Pero haciendo esto, se agrega la dirección de la matriz? por qué

List<double[]> x = new ArrayList<double[]>(); double[] name=new double[5]; name[0]=1 name[1]=3; name[2]=3; . . . . x.add(name); getting x.get(0) ---> returns @as12cd2 (address of the array)


Esto se debe a que la List se compone de double[] lugar de double .

Debido a que un double[] es una matriz, también debe especificar la posición de esa matriz. Al igual que:

x.get(0)[0]

Si desea poder usar solo x.get() , su List debe estar compuesta de primitivas double . Luego, puede agregar la matriz de doubles a la List usando un método separado (no sé de uno que esté integrado):

List<Double> addArray(List<Double> o, double[] a) { for(Double d : a) o.add(d); return o; }

Esperemos que tenga sentido. Me gusta usar nombres de variables cortos para aclarar la lógica. Mientras sepa cuáles son las variables, debería estar bien.


La implementación predeterminada de toString() de cualquier Object (incluida la double[] ) es el retorno de la dirección del objeto. Esto es lo que está impreso por su código.


Si solo desea que su lista almacene los dobles en lugar de matrices de dobles, cambie lo que la lista está almacenando

List<Double> doubleList = new ArrayList<Double>();

Luego puede agregar la matriz como una lista a su lista, lo que significará que la lista está almacenando los valores en lugar de la matriz. Esto le dará el comportamiento que get(0) le dará 1 en lugar de la dirección del arreglo

Double[] doubleArray = {1.0, 2.0, 3.0, 4.0, 54.0, 6.0 }; doubleList.addAll(Arrays.asList(doubleArray)); doubleList.get(0); //gives 1.0


double[] matriz double[] es un objeto. Entonces, obtienes una dirección y la matriz completa se agrega en el índice 0.

Puede usar Arrays.toString(x.get(0)) para obtener una impresión de matriz legible.

toString () para una matriz es imprimir [, seguido de un carácter que representa el tipo de datos de los elementos de la matriz, seguido de @ y luego la dirección de la memoria.