Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Dan_SB en 10 de Abril 2015, 22:17

Título: NetBeans unexpected type required: reference, found: int CU00675B
Publicado por: Dan_SB en 10 de Abril 2015, 22:17
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:

Código: [Seleccionar]
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 + ", ");
        }
    }       
}

Citar
¿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.

Citar
¿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:
(http://i.imgur.com/DB9BH6m.png)

Y me puse a jugar...
(http://i.imgur.com/n8iYn6i.png)
(http://i.imgur.com/cQABTKk.png)

Y como ya saben, el String es un objeto
(http://i.imgur.com/KPYPdf8.png)

La respuesta era usar el Integer obviamente porque usamos numeros:
(http://i.imgur.com/5F4QxBI.png)

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:

(http://i.imgur.com/R3rGqfu.png)

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!
Título: Re:Ejercicio (CU00675B), Copiar y comparar arrays en Java.
Publicado por: toni_apr en 11 de Abril 2015, 22:22
Hola Dan

Ejercicio correcto. OK

En las preguntas del ejercicio:
Citar
¿Qué tipo de datos almacena el array? ¿Qué tipo de datos almacena el ArrayList?

Se pregunta sobre 'el array' y 'el ArrayList' del ejercicio actual, no a 'cualquier array o ArrayList' en el lenguaje de Java.

En la lección CU00669B se explica que un array puede contener tanto primitivos como objetos de cualquier tipo como:
int, double, Integer, Double, Persona, Taxi, etc.

En cambio un ArrayList solo puede contener objetos como:
Integer, Double, Persona, Taxi, etc.

Está bien que juegues con el código probando cosas. Se aprende así.
Pero también se aprende teniendo en cuenta las enseñanzas que recibimos en las clases teóricas.

Saludos