Buenos dias!
Resuelvo el ejercicio 75° del curso con el siguiente 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?Aqui el codigo de prueba:
package ArratObjeto;
import java.util.ArrayList;
public class ListaNumeros {
public static void main(String[]args){
int miArray1[];
ArrayList <Integer> Lista1 = new ArrayList<Integer>(4);
miArray1 = new int[]{2,-4,3,-7};
System.out.print("Elementos del array: ");
for(int i = 0; i < miArray1.length; i++){
System.out.print(miArray1[i] + ", ");
}
System.out.println(" ");
//Copiando cadena con System.arraycopy...!
for(int i = 0; i< miArray1.length; i++){
Lista1.add(miArray1[i]);
}
//Imprimiendo Lista1.
System.out.print("Elementos copiados al segundo array: ");
for(int num: Lista1){
System.out.print(num + ", ");
}
}
}
¿Qué tipo de datos almacena el array?
Un array puede almacenar tipos primitivos (int, double, char, float..) y el tipo "especial" que es un objeto, los tipos String.
¿Qué tipo de datos almacena el ArrayList?
Me ocurrió algo durante la confección del código para la prueba:
Confieso que al inicio hice esto:
Y me puse a jugar...
Y como ya saben, el String es un objeto
La respuesta era usar el Integer obviamente porque usamos numeros:
Con los tipos primitivos, suelta errores, solo funciona con objetos (String, Integer)... por lo que mi conclusión seria: solo almacenan objetos.
PD: La linea amarilla que esta bajo el
"new ArrayList<Integer>(4);" es un warning, que me dice que estoy redundando el asunto (como si el netbeans me dijera: hey, no hace falta que me digas de nuevo que Lista1 es Integer.)
Le hice caso a la advertencia, lo corrigio de esta manera
"new ArrayList<>(4);" y funciono igual:
Creo que solo es valido escribir
"new ArrayList<Integer>(4);" en constructores, aunque igual, con todo y el warning corre el programa.
Espero sus comentarios y sus correcciones, gracias!