
Hunk Hk
Pregunta¿Que diferencia hay entre declarar nodes como new ArraysList
1)List<Node> nodes = new ArrayList<>();
y nodes como new Lis<>():
2) List<Node> nodes = new List<>();
Se supone que ArrayList es una clase que implementa a la Interfaz List. Pero List<>()?
-
es un metodo del la interfaz
Arraylist
por lo que no puedes instanciarList
como metodoList

Daniel Camacho
Arraylist es una Clase de la interfaz List por lo que no puedes instanciar List como metodo constructor, y mas adelante en el curso te daras cuenta que no puedes instanciar un objeto de una clase o interfaz abstracta
List es una<interfaz> que viene de la super interfaz collection. del packagejava.util del modulo java.base.
List <Node> nodes = new ArrayList<>(); | | | | | InterfazAbstracta Clase Nombre de la colecion Instancia ClaseDeLa InterfazList

Daniel Camacho
veo que otros se complican en responder,
no es un metodo es unaList
que viene de la super interfaz<interfaz>
. del packagecollection
del modulojava.util
java.base.
List <Node> nodes = new ArrayList<>(); | | | | /*Clase Predefinida / Nombre del array Instancia/ Metodo Constructor de la clase predefinida*/
Ebenezer Silvestre Diaz Garcia
Tu mismo dijiste la respuesta, List es la interface, y ArrayList es la implementacion de dicha interface, tu creas un objeto del tipo interface, pero cuando lo instancias, lo haces con la clase que implementa los métodos.
Oscar Estuardo de la Mora
Las clases abstractas son, muy frecuentemente, ¨plantilas¨ para crear otras clases. Estas plantilas carecen de funcionalidad y en Java, por definicion, las clases abstractas no pueden ser instanciadas, tal y como estas intentando. Lo que tienes que hacer es usar clases que implementan estas clases abstractas, tal como la clase ArrayList o Array. Estas dos clases que mencione implementan List, los mismos metodos, pero de formas distintas, por ejemplo, los ArrayList no son sincronizables, pero los Array si (osea que al Array puedes modificarlo con concurrencia, ArrayList daria error).
Para que nos sirve? basicamente imagina que en las noches que hay menos gente, la lista recibe solo datos secuenciales, osea, uno por uno, pero en el dia recibe de muchos lugares, osea con concurrencia, y solo tenemos un objeto List listado, entonces en la noche, se utiliza un List que se le asigno un ArrayList y en el dia se le asigna un Array (donde ArrayList, en este ejemplo, toma poca energia pero da igual por que tendra menos trabajo y Array usa mucha energia pero es por que tendra mucho trabajo). Y como la interfaz tiene el metodo add(), tanto en el dia y en la noche se usara siempre ¨el mismo¨ metodo, pero con distinta implementacion dependiendo del gasto energetico, algo asi que el add de ArrayList consume menos y el de Array consume mas.
Espero haberte ayudado y si no... lo siento :3

Jose Antonio Marín López
ArrayList implementa List que es una clase abstracta. Por decirlo de forma sencilla solamente "prepara la idea de lo que es una lista" y define la base de la misma. El segundo caso daría error porque no puedes crear una instancia de una clase abstracta. Tendrías que usar siempre ArrayList u otra clase que derive de List.