Java : Deque con ejemplos

Deque (Java SE 23 & JDK 23) en Java con ejemplos.
Encontrará muestras de código para la mayoría de los métodos Deque<E>.

Nota :


Summary

Una colección lineal que admite la inserción y eliminación de elementos en ambos extremos. El nombre deque es la abreviatura de "double ended queue" (cola de doble extremo) y normalmente se pronuncia "deck" (baraja). (Traducción automática)

Class diagram

final Deque<String> deque = new ArrayDeque<>();

deque.addLast("aaa");
deque.addLast("bbb");
deque.addLast("ccc");

System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.removeFirst()); // aaa
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.removeFirst()); // bbb
System.out.println(deque); // [ccc]

System.out.println(deque.removeFirst()); // ccc
System.out.println(deque); // []
final Deque<String> deque = new ArrayDeque<>();

deque.addLast("xxx");
deque.addLast("yyy");
deque.addLast("zzz");

System.out.println(deque); // [xxx, yyy, zzz]

System.out.println(deque.removeLast()); // zzz
System.out.println(deque); // [xxx, yyy]

System.out.println(deque.removeLast()); // yyy
System.out.println(deque); // [xxx]

System.out.println(deque.removeLast()); // xxx
System.out.println(deque); // []

Methods

boolean add (E e)

Inserta el elemento especificado en la cola representada por esta deque (en otras palabras, al final de esta deque) si es posible hacerlo inmediatamente sin violar las restricciones de capacidad, devolviendo verdadero en caso de éxito y lanzando una IllegalStateException si no hay espacio disponible actualmente. (Traducción automática)

This method is equivalent to addLast(E e).

boolean addAll (Collection<? extends E> c)

Agrega todos los elementos de la colección especificada al final de esta deque, como si llamara addLast(E) en cada uno, en el orden en que son devueltos por el iterador de la colección. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

System.out.println(deque.addAll(List.of("a1"))); // true
System.out.println(deque); // [a1]

System.out.println(deque.addAll(List.of("b1", "b2"))); // true
System.out.println(deque); // [a1, b1, b2]

System.out.println(deque.addAll(List.of("c1", "c2", "c3"))); // true
System.out.println(deque); // [a1, b1, b2, c1, c2, c3]

void addFirst (E e)

Inserta el elemento especificado al principio de esta deque si es posible hacerlo inmediatamente sin violar las restricciones de capacidad, lanzando una IllegalStateException si no hay espacio disponible actualmente. (Traducción automática)

// capacity = 3
final Deque<String> deque = new LinkedBlockingDeque<>(3);
System.out.println(deque); // []

deque.addFirst("aaa");
System.out.println(deque); // [aaa]

deque.addFirst("bbb");
System.out.println(deque); // [bbb, aaa]

deque.addFirst("ccc");
System.out.println(deque); // [ccc, bbb, aaa]

try {
    deque.addFirst("ddd");
} catch (IllegalStateException e) {
    System.out.println("IllegalStateException! : " + e.getMessage());
}

// Result
// ↓
//IllegalStateException! : Deque full

void addLast (E e)

Inserta el elemento especificado al final de esta deque si es posible hacerlo inmediatamente sin violar las restricciones de capacidad, lanzando una IllegalStateException si no hay espacio disponible actualmente. (Traducción automática)

// capacity = 3
final Deque<String> deque = new LinkedBlockingDeque<>(3);
System.out.println(deque); // []

deque.addLast("aaa");
System.out.println(deque); // [aaa]

deque.addLast("bbb");
System.out.println(deque); // [aaa, bbb]

deque.addLast("ccc");
System.out.println(deque); // [aaa, bbb, ccc]

try {
    deque.addLast("ddd");
} catch (IllegalStateException e) {
    System.out.println("IllegalStateException! : " + e.getMessage());
}

// Result
// ↓
//IllegalStateException! : Deque full

boolean contains (Object o)

Devuelve verdadero si esta deque contiene el elemento especificado. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.contains("aaa")); // true
System.out.println(deque.contains("bbb")); // true
System.out.println(deque.contains("XXX")); // false

Iterator<E> descendingIterator ()

Devuelve un iterador sobre los elementos de esta deque en orden secuencial inverso. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

final var iterator = deque.descendingIterator();

System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(System.out::println);

// Result
// ↓
//-- forEachRemaining --
//ccc
//bbb
//aaa

E element ()

Recupera, pero no elimina, el encabezado de la cola representada por esta deque (en otras palabras, el primer elemento de esta deque). (Traducción automática)

This method is equivalent to getFirst().

E getFirst ()

Recupera, pero no elimina, el primer elemento de esta deque. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.addLast("aaa");
deque.addLast("bbb");
deque.addLast("ccc");

System.out.println(deque.getFirst()); // aaa
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.removeFirst()); // aaa
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.getFirst()); // bbb
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.removeFirst()); // bbb
System.out.println(deque); // [ccc]

System.out.println(deque.getFirst()); // ccc
System.out.println(deque); // [ccc]

System.out.println(deque.removeFirst()); // ccc
System.out.println(deque); // []

try {
    deque.getFirst();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

E getLast ()

Recupera, pero no elimina, el último elemento de esta deque. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.addLast("aaa");
deque.addLast("bbb");
deque.addLast("ccc");

System.out.println(deque.getLast()); // ccc
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.removeLast()); // ccc
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.getLast()); // bbb
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.removeLast()); // bbb
System.out.println(deque); // [aaa]

System.out.println(deque.getLast()); // aaa
System.out.println(deque); // [aaa]

System.out.println(deque.removeLast()); // aaa
System.out.println(deque); // []

try {
    deque.getLast();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

Iterator<E> iterator ()

Devuelve un iterador sobre los elementos de esta deque en la secuencia adecuada. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>(List.of("aaa", "bbb", "ccc"));
System.out.println(deque); // [aaa, bbb, ccc]

final var iterator = deque.iterator();

System.out.println("-- forEachRemaining --");
iterator.forEachRemaining(System.out::println);

// Result
// ↓
//-- forEachRemaining --
//aaa
//bbb
//ccc

boolean offer (E e)

Inserta el elemento especificado en la cola representada por esta deque (en otras palabras, al final de esta deque) si es posible hacerlo inmediatamente sin violar las restricciones de capacidad, devolviendo verdadero en caso de éxito y falso si no hay espacio disponible actualmente. (Traducción automática)

This method is equivalent to offerLast(E e).

boolean offerFirst (E e)

Inserta el elemento especificado al principio de esta deque a menos que viole las restricciones de capacidad. (Traducción automática)

// capacity = 3
final Deque<String> deque = new LinkedBlockingDeque<>(3);
System.out.println(deque); // []

System.out.println(deque.offerFirst("aaa")); // true
System.out.println(deque); // [aaa]

System.out.println(deque.offerFirst("bbb")); // true
System.out.println(deque); // [bbb, aaa]

System.out.println(deque.offerFirst("ccc")); // true
System.out.println(deque); // [ccc, bbb, aaa]

System.out.println(deque.offerFirst("ddd")); // false
System.out.println(deque); // [ccc, bbb, aaa]

boolean offerLast (E e)

Inserta el elemento especificado al final de esta deque a menos que viole las restricciones de capacidad. (Traducción automática)

// capacity = 3
final Deque<String> deque = new LinkedBlockingDeque<>(3);
System.out.println(deque); // []

System.out.println(deque.offerLast("aaa")); // true
System.out.println(deque); // [aaa]

System.out.println(deque.offerLast("bbb")); // true
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.offerLast("ccc")); // true
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.offerLast("ddd")); // false
System.out.println(deque); // [aaa, bbb, ccc]

E peek ()

Recupera, pero no elimina, el encabezado de la cola representada por esta deque (en otras palabras, el primer elemento de esta deque), o devuelve nulo si esta deque está vacía. (Traducción automática)

This method is equivalent to peekFirst().

E peekFirst ()

Recupera, pero no elimina, el primer elemento de esta deque, o devuelve nulo si esta deque está vacía. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.addLast("aaa");
deque.addLast("bbb");
deque.addLast("ccc");

System.out.println(deque.peekFirst()); // aaa
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.pollFirst()); // aaa
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.peekFirst()); // bbb
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.pollFirst()); // bbb
System.out.println(deque); // [ccc]

System.out.println(deque.peekFirst()); // ccc
System.out.println(deque); // [ccc]

System.out.println(deque.pollFirst()); // ccc
System.out.println(deque); // []

System.out.println(deque.peekFirst()); // null
System.out.println(deque); // []

E peekLast ()

Recupera, pero no elimina, el último elemento de esta deque, o devuelve nulo si esta deque está vacía. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.addLast("aaa");
deque.addLast("bbb");
deque.addLast("ccc");

System.out.println(deque.peekLast()); // ccc
System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.pollLast()); // ccc
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.peekLast()); // bbb
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.pollLast()); // bbb
System.out.println(deque); // [aaa]

System.out.println(deque.peekLast()); // aaa
System.out.println(deque); // [aaa]

System.out.println(deque.pollLast()); // aaa
System.out.println(deque); // []

System.out.println(deque.peekLast()); // null
System.out.println(deque); // []

E poll ()

Recupera y elimina la cabecera de la cola representada por esta deque (en otras palabras, el primer elemento de esta deque), o devuelve nulo si esta deque está vacía. (Traducción automática)

This method is equivalent to pollFirst().

E pollFirst ()

Recupera y elimina el primer elemento de esta deque, o devuelve nulo si esta deque está vacía. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.add("aaa");
deque.add("bbb");
deque.add("ccc");

System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.pollFirst()); // aaa
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.pollFirst()); // bbb
System.out.println(deque); // [ccc]

System.out.println(deque.pollFirst()); // ccc
System.out.println(deque); // []

System.out.println(deque.pollFirst()); // null
System.out.println(deque); // []

E pollLast ()

Recupera y elimina el último elemento de esta deque, o devuelve nulo si esta deque está vacía. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.add("aaa");
deque.add("bbb");
deque.add("ccc");

System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.pollLast()); // ccc
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.pollLast()); // bbb
System.out.println(deque); // [aaa]

System.out.println(deque.pollLast()); // aaa
System.out.println(deque); // []

System.out.println(deque.pollLast()); // null
System.out.println(deque); // []

E pop ()

Extrae un elemento de la pila representado por esta deque. (Traducción automática)

This method is equivalent to removeFirst().

void push (E e)

Inserta un elemento en la pila representada por esta deque (en otras palabras, al principio de esta deque) si es posible hacerlo inmediatamente sin violar las restricciones de capacidad, lanzando una IllegalStateException si no hay espacio disponible actualmente. (Traducción automática)

This method is equivalent to addFirst(E e).

E remove ()

Recupera y elimina la cabecera de la cola representada por esta deque (en otras palabras, el primer elemento de esta deque). (Traducción automática)

This method is equivalent to removeFirst().

boolean remove (Object o)

Elimina la primera aparición del elemento especificado de esta deque. (Traducción automática)

This method is equivalent to removeFirstOccurrence(Object o).

E removeFirst ()

Recupera y elimina el primer elemento de esta deque. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.add("aaa");
deque.add("bbb");
deque.add("ccc");

System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.removeFirst()); // aaa
System.out.println(deque); // [bbb, ccc]

System.out.println(deque.removeFirst()); // bbb
System.out.println(deque); // [ccc]

System.out.println(deque.removeFirst()); // ccc
System.out.println(deque); // []

try {
    deque.removeFirst();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

boolean removeFirstOccurrence (Object o)

Elimina la primera aparición del elemento especificado de esta deque. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>(List.of("aaa", "BBB", "aaa", "BBB", "ccc"));
System.out.println(deque); // [aaa, BBB, aaa, BBB, ccc]

System.out.println(deque.removeFirstOccurrence("aaa")); // true
System.out.println(deque); // [BBB, aaa, BBB, ccc]

System.out.println(deque.removeFirstOccurrence("BBB")); // true
System.out.println(deque); // [aaa, BBB, ccc]

System.out.println(deque.removeFirstOccurrence("XXX")); // false
System.out.println(deque); // [aaa, BBB, ccc]

E removeLast ()

Recupera y elimina el último elemento de esta deque. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []

deque.add("aaa");
deque.add("bbb");
deque.add("ccc");

System.out.println(deque); // [aaa, bbb, ccc]

System.out.println(deque.removeLast()); // ccc
System.out.println(deque); // [aaa, bbb]

System.out.println(deque.removeLast()); // bbb
System.out.println(deque); // [aaa]

System.out.println(deque.removeLast()); // aaa
System.out.println(deque); // []

try {
    deque.removeLast();
} catch (NoSuchElementException e) {
    System.out.println("NoSuchElementException!");
}

// Result
// ↓
//NoSuchElementException!

boolean removeLastOccurrence (Object o)

Elimina la última aparición del elemento especificado de esta deque. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>(List.of("aaa", "BBB", "aaa", "BBB", "ccc"));
System.out.println(deque); // [aaa, BBB, aaa, BBB, ccc]

System.out.println(deque.removeLastOccurrence("BBB")); // true
System.out.println(deque); // [aaa, BBB, aaa, ccc]

System.out.println(deque.removeLastOccurrence("aaa")); // true
System.out.println(deque); // [aaa, BBB, ccc]

System.out.println(deque.removeLastOccurrence("XXX")); // false
System.out.println(deque); // [aaa, BBB, ccc]

default Deque<E> reversed ()

Devuelve una vista ordenada invertida de esta colección. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();

deque.addLast("aaa");
deque.addLast("bbb");
deque.addLast("ccc");

System.out.println(deque); // [aaa, bbb, ccc]

final var reversed = deque.reversed();
System.out.println(reversed); // [ccc, bbb, aaa]

System.out.println(reversed.reversed()); // [aaa, bbb, ccc]

int size ()

Devuelve el número de elementos en esta deque. (Traducción automática)

final Deque<String> deque = new ArrayDeque<>();
System.out.println(deque); // []
System.out.println(deque.size()); // 0

deque.addLast("aaa");
System.out.println(deque); // [aaa]
System.out.println(deque.size()); // 1

deque.addLast("bbb");
System.out.println(deque); // [aaa, bbb]
System.out.println(deque.size()); // 2

deque.addLast("ccc");
System.out.println(deque); // [aaa, bbb, ccc]
System.out.println(deque.size()); // 3

Methods declared in Collection

clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray, toArray

Consulte el siguiente enlace.

Methods declared in Iterable

forEach

Consulte el siguiente enlace.


Related posts

To top of page