1

Deque: Implementa un Double-Ended-Queue de manera sencilla

¿Cómo utilizar la interface “Deque”?

Entrando en el tema de las Interfaces
tenemos una que puede serte de mucha utilidad
en cuanto a Estructuras de Datos se refiere.

Se trata de la Interface "Deque,
la cual sirve para implementar una estructura conocida como Double-ended-queue
que tiene como peculiaridad la posibilidad de

insertar y remover elementos tanto de su inicio como de su final

es decir, puede comportarse como:

  • Una estructura Stack (LIFO)

  • Una estructura Queue (FIFO)

Los métodos que has de implementar si quieres sacar provecho de ésta estructura son:

1. Métodos para Insertar

addFirst(e) -> En éste método debes implementar un comportamiento que
------------------> agregue el elemento especificado** al inicio** de tu Deque

------------------> Lanzará:

------------------> IllegalStateException –si el elemento no puede ser añadido porque impusiste restricciones de capacidad.
------------------> ClassCastException – Si la clase del elemento especificado evita que sea añadido al Deque.
------------------> NullPointerException – Si el elemento es nulo y no se permiten elementos nulos
------------------> IllegalArgumentException –Si** alguna propiedad** del elemento especificado evita que sea agregado al Deque.

.

offerFirst(e) -> Aquí se implementará un comportamiento como el de addFirst(e)
------------------> con la diferencia que regresarástrue si el elemento se añadió correctamente y false en cualquier otro caso.
------------------> Solo lanzará las siguientes excepciones:
------------------>ClassCastException, NullPointerException y IllegalArgumentException

.
.

addLast(e) -> Al igual que addFirst(e) pero el elemento se agregará al final del Deque

.

offerLast(e) -> Análogo a offerFirst(e) pero la inserción se realiza al final del Deque.

2. Métodos para Remover

removeFirst() -> Para éste método retornarás el head del Deque y también
------------------>eliminarás éste primer elemento.
------------------> Lanzará NoSuchElementException si el Deque está vacío.

.

pollFirst() -> Elabora el mismo comportamiento que para removeFirst(),
------------------>pero retorna el head del Deque o
------------------>null si el Deque está vacío.

.
.

removeLast() -> Mismo comportamiento que para removeFirst(),
------------------>pero retorna el tail del Deque

.

pollLast() -> También retornarás el tail del Deque y también
------------------>eliminarás éste último elemento.
------------------>pero retorna null si el Deque está vacío.

3. Métodos para Examinar

getFirst() -> Retorna el head pero no lo elimines
------------------> Lanzará NoSuchElementException si el Deque está vacío.

.

peekFirst() -> También retorna el head pero no lo elimines,
------------------> y regresa null si el Deque está vacío.

.
.

getLast() -> Retorna el tail pero no lo elimines
------------------> Lanzará NoSuchElementException si el Deque está vacío.

.

peekLast() -> También retorna el tail pero no lo elimines,
------------------>y regresa null si el Deque está vacío.

La Inteface Deque contiene más métodos que puedes implementar para
ajustar El Double-Ended-Queue a las necesidades de tu proyecto.
Para saber más consulta la documentación en éste enlace o en los tooltips si tu IDE es IntelliJ.

Escribe tu comentario
+ 2