Autor Tema: Copiar y comparar arrays en Java ejercicios resueltos y duda planteada CU00675B  (Leído 566 veces)

Mike75

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Sobre el ejercicio CU00675B del curso de java gratuito que se ofrece en esta web:

Código: [Seleccionar]
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
Código: [Seleccionar]
   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
« última modificación: 04 de Junio 2018, 19:17 de Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2448
    • Ver Perfil
Buenas, para ver una solución correcta a este ejercicio puede consultarse el hilo https://aprenderaprogramar.com/foros/index.php?topic=2261.0

Poniendo el código de ejercicio en el buscador del foro pueden encontrarse soluciones propuestas a cada uno de los ejercicios

Salu2

 

Esto es un laboratorio de ideas...
Aprender a programar

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".