Pila: Es una estructura de tipo LIFO(last in first out, primero en entrar último en salir). Funciona como la pila de ensamblador, con push metes cosas y con pop las sacas.
Cola: Es una estructura de tipo FIFO(first in first out, primero en entrar primero en salir). Simplemente funciona como funcionaria una cola de un cine.
Lista: Metes los objetos donde te de la gana, como funcionaria un ArrayList.
Estas estructuras se pueden construir a partir de estructuras propias de Java(no hace falta ser un genio vamos). También hay otra de forma de construirlas que es con estructuras dinámicas. Con las estructuras dinámicas lo que haces es crear una Clase dentro de la Clase de la estructura que sirva para almacenar los objetos que almacenas y la referencia al siguiente objeto, tipo este dibujo:
De hecho creo que las estructuras propias de Java(como el ArrayList) por debajo estan hechas de esta manera. De todas formas tengo hechas estas estructuras dinámicas con tratamiento de errores y demás y las usas como si fuese una de java, por si tienes algun problema con ello.
Saludos!