Autor Tema: NetBeans unexpected type required: reference, found: int CU00675B  (Leído 4495 veces)

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
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:


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!
« Última modificación: 12 de Abril 2015, 21:54 por Alex Rodríguez »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio (CU00675B), Copiar y comparar arrays en Java.
« Respuesta #1 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

 

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