Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Erik_Escriche en 22 de Noviembre 2016, 11:54

Título: Duda sobre asList y LinkedList error tipos incompatibles Ejercicio CU00679B Java
Publicado por: Erik_Escriche en 22 de Noviembre 2016, 11:54
¡Buenas!

Haciendo el ejercicio CU00679B del curso de programación java desde cero me ha surgido una duda. El código que escribí inicialmente es este:

Código: [Seleccionar]
import java.util.LinkedList;
import java.util.Arrays;
public class TestLinkedList {
    public static void main (String [] args) {
        Boolean [] miArray = {true, true, false, false, true, false};       
        LinkedList <Boolean> miLinkedList = new LinkedList <Boolean> ();
        miLinkedList = Arrays.asList(miArray);       
        System.out.println ("Contenido del LinkedList: " + miLinkedList);
    }
}

Al compilarlo, me daba error porque los tipos son incompatibles. Revisé la teoría y me di cuenta de que el método asList crea un tipo List, así que entiendo que salte el error. Sin embargo, no comprendo por qué no aparece el mismo error de compilación cuando se escribe lo siguiente:

Código: [Seleccionar]
import java.util.LinkedList;
import java.util.Arrays;
import java.util.List;
public class TestLinkedList {
    public static void main (String [] args) {
        Boolean [] miArray = {true, true, false, false, true, false};       
        List <Boolean> miLinkedList = new LinkedList <Boolean> ();
        miLinkedList = Arrays.asList(miArray);       
        System.out.println ("Contenido del LinkedList: " + miLinkedList);
    }
}

¿Cuál es la diferencia entre escribir
Código: [Seleccionar]
List<Boolean> miLinkedList = new LinkedList <Boolean> () y escribir
Código: [Seleccionar]
LinkedList<Boolean> miLinkedList = new LinkedList<Boolean>()? ¿No se crea en ambos casos un LinkedList?

Muchas gracias de antemano.
Título: Re:Dudas sobre asList y LinkedList Ejercicio CU00679B Java
Publicado por: ESOJ en 30 de Noviembre 2016, 05:03
Buenos días.

Al escribir
Código: [Seleccionar]
LinkedList <Boolean> miLinkedList = new LinkedList <Boolean> ();el tipo es LinkedList y lo implementamos con LinkedList.
Sin embago al escribir
Código: [Seleccionar]
List<Boolean> miLinkedList = new LinkedList <Boolean> ()aunque también implementamos con LinkedList el tipo sería List,con lo que ya no son incompatibles.
Revisaté el siguiente enlace:
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=603:interface-list-del-api-java-clases-arraylist-linkedlist-stack-vector-ejemplo-con-arraylist-cu00920c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180 (https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=603:interface-list-del-api-java-clases-arraylist-linkedlist-stack-vector-ejemplo-con-arraylist-cu00920c&catid=58:curso-lenguaje-programacion-java-nivel-avanzado-i&Itemid=180)

Un saludo
Título: Re:Dudas sobre asList y LinkedList Ejercicio CU00679B Java
Publicado por: Erik_Escriche en 02 de Diciembre 2016, 16:49
Muchas gracias por la explicación, ESOJ. Ahora ya lo entiendo.