Autor Tema: Crea un Array muestra su contenido y cópialo en un ArrayList. Lección CU00675B  (Leído 141 veces)

diego_godie

  • Sin experiencia
  • *
  • Mensajes: 9
  • Deseo Vivir de esto
    • Ver Perfil
Buenos días! ¿como están?
Esta es mi primera intervención en este foro, espero poder ser un usuario activo siempre, ya que deseo vivir de esto (Lo llevo persiguiendo un buen par de años y se me ha hecho difícil, pero cada uno con sus luchas).

Resolví el ejercicio de la lección CU00675B, el cual dice así:
"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?"

Esta es mi solución:
Código: [Seleccionar]
import java.util.ArrayList;

public class CopiarContenido
{
    public static void main(String [] args){
    ArrayList<Integer> lista1 = new ArrayList<Integer>();
   
    int[] miArray1 = {2, -4, 3, -7};
   
    for (int i=0; i < miArray1.length; i++){
    System.out.println("miArray1[" + i + "]:" + miArray1[i]);
    lista1.add(miArray1[i]);
    }//fin del for
   
    System.out.print("");
   
    //int contador = 0;
    for(Integer miObjeto:lista1){
        System.out.println("lista1.get(" + /*(contador+1)*/ + lista1.indexOf(miObjeto) + "):"
        + miObjeto
        );
        //contador++;
    }//fin del for mejorado   
   
}
}

Como verán, en principio lo resolví de una manera, y después buscando en estos foros encontre que alguien lo habia resulto un poquito diferente, en el for mejorado que utilizaba para mostrar el contenido del ArrayList utilizo el metodo "indexOf" para obtener la posición del elemento mostrado. Lo cual me pareció genial  y me fui a ver la librería de java y lo utilice.
Es bueno encontrar soluciones distintas en este foro, Saludos

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 702
    • Ver Perfil
Hola y bienvenido.
En programación, hasta el ejercicio más simple puede tener más de una forma de solucionarse.

Por cierto, ¿la respuesta a estas preguntas?  ::)

Citar
¿Qué tipo de datos almacena el array? ¿Qué tipo de datos almacena el ArrayList?

Aunque no lo parezca, tiene su importancia tener claras las respuestas a estas preguntas.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

diego_godie

  • Sin experiencia
  • *
  • Mensajes: 9
  • Deseo Vivir de esto
    • Ver Perfil
Buenas tardes!! Como estas? Muchas gracias por tu respuesta, por las lecciones anteriores a esta. Aprendí que el array almacena datos de tipo primitivo, y los ArrayList almacenan tipos de referencia. Como ser int para los arreglos  e Integer para el ArrayList. Espero haber contestado bien jeje

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 702
    • Ver Perfil
Más o menos.

Digamos que hay dos tipos de datos:
- los primitivos, que son muy básicos, ya que la única información que contienen es su propio valor.
Estos datos, en Java, son: byte, int, float, double, char(en realidad es un int) y boolean.

- Los objetos de clase, son mucho más avanzados. No solo contienen su propio valor, de hecho, pueden contener muchos valores distintos al mismo tiempo, pero además incorporan funcionalidades a través de sus "métodos".
Un objeto de clase, es prácticamente un programa autónomo, que podemos diseñar para que sea todo lo sencillo, o todo lo complejo que queramos.
Este tipo de dato "nació" cuando se desarrolló la POO(Programación Orientada a Objetos)

Los array(o arreglos, o vectores, o como queramos llamarlos...), en este ejercicio, almacena el tipo primitivo int.
Sin embargo, también pueden almacenar objetos de clase, podría hacerse un array de Integer.

Los ArrayList, así como el resto de colecciones de Java (los List, los Map,...) solo pueden trabajar con objetos de clase, no aceptan tipos primitivos.

Bueno, en realidad si los aceptan, lo que pasa es que los transforman en objetos sin que nosotros lo veamos.

Por ejemplo, en esta línea:
Código: [Seleccionar]
lista1.add(miArray1[i]);
Al ArrayList lista1, que es de hecho un objeto de clase ArrayList, le estamos pasando un valor int primitivo (porque es lo que lo tiene el array) a través de su método add().
Este método, coge el int primitivo, y sin que lo veamos, construye a partir de él un objeto Integer para poder almacenarlo en el ArrayList.

Eso no ocurre por arte de magia, alguien escribió el código del método add() para que haga ese proceso y así la clase ArrayList es capaz de aceptar ints primitivos, transformándolos automáticamente en objetos Integer.

Eso es lo maravilloso de la POO, cada objeto es como un programa individual que contiene y ejecuta sus propios algoritmos de forma ajena al programa principal.

Un saludo.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

diego_godie

  • Sin experiencia
  • *
  • Mensajes: 9
  • Deseo Vivir de esto
    • Ver Perfil
Wau, maravillosa explicación. Muchisimas gracias, me re sirve!
Ya estoy en la lección 75 del curso y es la primera que intervengo en el foro, me arrepiento de no haberlo hecho antes. Gracias y saludos!!
Trataré de intervenir en el foro ayudando en cuanto pueda

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

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".