Una lista… podríamos decir que es un array mejorao se meten objetos con add(objeto) y se sacan con get(posicio)
ArrayList Tiene detrás un array, es lento en actuaciones secuenciales y rápido en actuaciones aleatorias.
LinkedList Está implementado como un conjunto, es como si a cada objeto se le añadiera un prefijo de su predecesor y un sufijo de su posterior elemento. Por este motivo es mas rápido para manipulación de elementos intermedios. Ya sabes meter y sacar del medio de la losta porque sólo hay que meter el elemento y copiar los apuntadores del anterior y el posterior.
Lo normal es decantarse por un arraylist y si se ve que es muy lento cambiar a linkedlist
Set Es un CONJUNTO SIN REPETIDOS y se maneja igual que una lista… con add(objeto) y se sacan con get(posicio)
TreeSet es un conjunto ordenado
HashSet es un conjunto… con hash. Es mas rápido en todos los sentidos que el TreeSet. El único motivo de mantener el TreeSet es porque mantiene los elementos ordenados