Sobre el ejercicio CU00675B del curso de java gratuito que se ofrece en esta web:
ENUNCIADO
Crea un programa Java donde declares un array de enteros tipo int miArray1 cuyo
contenido inicial sea {2, -4, 3, -7}. Muestra su contenido por pantalla. Copia el contenido
de este array a un ArrayList denominado lista1 y muestra su contenido por pantalla.
¿Qué tipo de datos almacena el array? ¿Qué tipo de datos almacena el ArrayList?
Buenos días a todos. Estoy bastante interesado en lo relacionado con arrays (tipos, recorridos copias), puesto que hasta donde llego es un tema trivial por sus múltiples recursos. Por eso he intentado desarrollar el ejercicio, primero creando 2 arrays (int e Integer) para ver como iban reaccionado simétricamente y por otro lado buscar una alternativa 'asList' más allá del copiado transitivo que donde un array recoge el valor que devuelve otro. De hecho sí me permite traspasar a List un array ordinario, pero curiosamente lo que no hace es recorrerlo (solo me devuelve la dirección de memoria). Por otro lado para que obtener la respuesta automática de ¿Qué tipo de datos almacena el ArrayList? he creado un Arraylist "List lista1 = new ArrayList ()" sin tipo para que muestre su contenido nativo, osease Integer.
EJERCICIO
public static void main (String[ ] Args) {
Integer [ ] miArrayI = {2, -4, 3, -7}; //array ordinario tipo Integer
int [ ] miArray = {2, -4, 3, -7}; //array ordinario tipo int
List lista1 = new ArrayList (); //OJO List sin <tipo>
//Mostramos su contenido por pantalla
System.out.print("array by for: ");
for (int i=0; i < miArray.length; i++)
{System.out.print (" "+miArray[i]);}
//FUNCIONA
//Se copia el ArrayOrdinal(Integer) como Array.asList
System.out.print("\nInteger-> List/ArrayList: ");
lista1= Arrays.asList (miArrayI);
System.out.println(lista1);
//VALIDO!.Devuelve los elementos copiados de un array Integer asList
//Ahora hacemos lo mismo con el ArrayOrdinal(Int) como Array.asList
System.out.print("int-> List/ArrayList: ");
lista1= Arrays.asList (miArray);
System.out.println(lista1);
//NO VALIDO.Devuelve la dirección del Array que contiene valores
//int primitivos
//Para intentar recorrer el array por cualquiera de los métodos
//aprendidos, me devuelve error en compilación:
//lista1 no es una variable conocida en el contexto actual
//1) for (int i=0; i<=lista1.size(); i++)
// {System.out.println(lista1[i]);}
//2) for (int i : lista1)
//mediante Iterator tampoco nos permite
/* Iterator<List> it = lista1.iterator();
int tmpAnalizando;
while ( it.hasNext() ) {
tmpAnalizando = it.next();}*/
}
No sé si sería posible, ya sale de mi nivel. No obstante agradecería cualquier ayuda. Gracias