Lista = LinkedList , Pila = Stack , Cola = ? , Arbol Binario de ordenamiento = ?

Hola amigos, estoy revisando un poco sobre estructuras de datos y sus implementaciones en las librerias de Java.

Según tengo en un libro, las listas están implementadas en Java por la clase LinkedList, las pilas por Stack

PERO

Según también vi por ahí comentaban que la clase Stack estaba en deshuso... entonces ¿cual se utiliza ahora como implementación de una estructura de datos Pila?

De la clase Cola no se su implementación en Java, vi que existe una interfaz llamada Queue PERO no se que clase la implemente en las librerias de Java.

Los arboles binarios de ordenamiento también son importantes ¿que clase los implementa en las librerias de Java?

----

Mi interés es saber la implementación de las estructuras de datos en las librerias de Java oficiales... yo hace mucho tiempo hice mis propias implementaciones de las estructuras de datos PERO quisiera utilizar las estandarizadas en las librerias...
AL IGUAL QUE EL UTILIZAR Math.max( num1, num2 ) en vez de añadir una instrucción de desición en el código que haga lo mismo... QUIERO IRME POR LO ESTANDAR.

Agradezco sus respuestas.

Saludos.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

Algunas

Cola: Queue (es una interfaz, revisa el JavaDoc para las implementaciones como LinkedBlockingQueue)

Pila: Deque (es una interfaz derivada de Queue, pero hay varias implementaciones, revisa el JavaDoc para ver ArrayDeque, LinkedList, LinkedBlockingDeque). Puedes usar un Deque como cola o como pila.

Lista: Hay varias, la interfaz List, implementación más común ArrayList (o Vector si requieres sincronización).

Para árboles binarios tienes TreeMap y TreeSet, aunque puede ser más eficiente usar HashMap y HashSet, si implementas bien el método hashCode() en los objetos que vas a guardar ahí (asumiendo que vas a guardar tus propios objetos).