Breaking

Post Top Ad

Your Ad Spot

sábado, 21 de diciembre de 2019

Java ArrayDeque

En este tutorial, aprenderemos sobre la clase ArrayDeque y sus métodos con la ayuda de ejemplos. Además, aprenderemos a usar la eliminación de matriz para implementar una pila.
anuncios a través de carbonoReúna a su equipo con Slack, el centro de colaboración para el trabajo.ANUNCIOS A TRAVÉS DE CARBONO
En Java, podemos usar la ArrayDequeclase para implementar estructuras de datos de cola y deque mediante matrices.

Interfaces implementadas por ArrayDeque

La ArrayDequeclase implementa estas dos interfaces:
  • Interfaz de cola de Java
  • Interfaz Java Deque
ArrayDeque en Java implementa dos interfaces: Queue y Deque

Creando ArrayDeque

Para crear una calcomanía de matriz, debemos importar el java.util.ArrayDequepaquete.
Así es como podemos crear una matriz de deque en Java:
  1. ArrayDeque<Type> animal = new ArrayDeque<>();
Aquí, Tipo indica el tipo de deque de matriz. Por ejemplo,
  1. // Creating String type ArrayDeque
  2. ArrayDeque<String> animals = new ArrayDeque<>();
  3. // Creating Integer type ArrayDeque
  4. ArrayDeque<Integer> age = new ArrayDeque<>();

Métodos de ArrayDeque

La ArrayDequeclase proporciona implementaciones para todos los métodos presentes en QueueDequede la interfaz.

Insertar elementos para eliminar

1. Agregue elementos usando add (), addFirst () y addLast ()
  • add() - inserta el elemento especificado al final de la eliminación de matriz
  • addFirst() - inserta el elemento especificado al comienzo de la eliminación de matriz
  • addLast()- inserta el especificado al final de la matriz deque (equivalente a add())
Nota: Si la matriz es deque completos, todos estos métodos add()addFirst()y la addLast()lanza IllegalStateException.
Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> animals= new ArrayDeque<>();
  5. // Using add()
  6. animals.add("Dog");
  7. // Using addFirst()
  8. animals.addFirst("Cat");
  9. // Using addLast()
  10. animals.addLast("Horse");
  11. System.out.println("ArrayDeque: " + animals);
  12. }
  13. }
Salida
ArrayDeque: [Gato, Perro, Caballo]
2. Inserte elementos usando offer (), offerFirst () y offerLast ()
  • offer() - inserta el elemento especificado al final de la eliminación de matriz
  • offerFirst() - inserta el elemento especificado al comienzo de la eliminación de matriz
  • offerLast() - inserta el elemento especificado al final de la eliminación de matriz
Nota: offer() , offerFirst()offerLast()regresa truesi el elemento se inserta con éxito; si la matriz deque está llena, estos métodos regresan false.
Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> animals= new ArrayDeque<>();
  5. // Using offer()
  6. animals.offer("Dog");
  7. // Using offerFirst()
  8. animals.offerFirst("Cat");
  9. // Using offerLast()
  10. animals.offerLast("Horse");
  11. System.out.println("ArrayDeque: " + animals);
  12. }
  13. }
Salida
ArrayDeque: [Gato, Perro, Caballo]
Nota: Si la matriz de deque está llena
  • el add()método arrojará una excepción
  • el offer()método devuelvefalse

Acceder a elementos de ArrayDeque

1. Acceda a elementos usando getFirst () y getLast ()
  • getFirst() - devuelve el primer elemento de la matriz deque
  • getLast() - devuelve el último elemento de la matriz deque
Nota: Si la matriz deque está vacía, getFirst()getLast()arroja NoSuchElementException.
Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> animals= new ArrayDeque<>();
  5. animals.add("Dog");
  6. animals.add("Cat");
  7. animals.add("Horse");
  8. System.out.println("ArrayDeque: " + animals);
  9. // Get the first element
  10. String firstElement = animals.getFirst();
  11. System.out.println("First Element: " + firstElement);
  12. // Get the last element
  13. String lastElement = animals.getLast();
  14. System.out.println("Last Element: " + lastElement);
  15. }
  16. }
Salida
ArrayDeque: [Perro, Gato, Caballo]
Primer elemento: perro
Último elemento: caballo
2. Acceda a los elementos utilizando el método peek (), peekFirst () y peekLast ()
  • peek() - devuelve el primer elemento de la matriz deque
  • peekFirst()- devuelve el primer elemento de la matriz deque (equivalente a peek())
  • peekLast() - devuelve el último elemento de la matriz deque
Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> animals= new ArrayDeque<>();
  5. animals.add("Dog");
  6. animals.add("Cat");
  7. animals.add("Horse");
  8. System.out.println("ArrayDeque: " + animals);
  9. // Using peek()
  10. String element = animals.peek();
  11. System.out.println("Head Element: " + element);
  12. // Using peekFirst()
  13. String firstElement = animals.peekFirst();
  14. System.out.println("First Element: " + firstElement);
  15. // Using peekLast
  16. String lastElement = animals.peekLast();
  17. System.out.println("Last Element: " + lastElement);
  18. }
  19. }
Salida
ArrayDeque: [Perro, Gato, Caballo]
Elemento principal: perro
Primer elemento: perro
Último elemento: caballo
Nota: Si la matriz de deque está vacía peek()peekFirst()getLast()arroja NoSuchElementException.

Eliminar elementos de ArrayDeque

1. Eliminar elementos usando el método remove (), removeFirst (), removeLast ()
  • remove() - devuelve y elimina un elemento del primer elemento de la matriz deque
  • remove(element) - devuelve y elimina el elemento especificado de la cabeza de la matriz deque
  • removeFirst()- devuelve y elimina el primer elemento de la matriz deque (equivalente a remove())
  • removeLast() - devuelve y elimina el último elemento de la matriz deque
Nota: Si la matriz deque está vacía remove()removeFirst()y el removeLast()método arroja una excepción. Además, remove(element)lanza una excepción si no se encuentra el elemento.
Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> animals= new ArrayDeque<>();
  5. animals.add("Dog");
  6. animals.add("Cat");
  7. animals.add("Cow");
  8. animals.add("Horse");
  9. System.out.println("ArrayDeque: " + animals);
  10. // Using remove()
  11. String element = animals.remove();
  12. System.out.println("Removed Element: " + element);
  13. System.out.println("New ArrayDeque: " + animals);
  14. // Using removeFirst()
  15. String firstElement = animals.removeFirst();
  16. System.out.println("Removed First Element: " + firstElement);
  17. // Using removeLast()
  18. String lastElement = animals.removeLast();
  19. System.out.println("Removed Last Element: " + lastElement);
  20. }
  21. }
Salida
ArrayDeque: [Perro, Gato, Vaca, Caballo]
Elemento eliminado: perro
Nueva ArrayDeque: [Cat, Cow, Horse]
Primer elemento eliminado: Gato
Último elemento eliminado: caballo
2. Elimine elementos utilizando el método poll (), pollFirst () y pollLast ()
  • poll() - devuelve y elimina el primer elemento de la matriz deque
  • pollFirst()- devuelve y elimina el primer elemento de la matriz deque (equivalente a poll())
  • pollLast() - devuelve y elimina el último elemento de la matriz de deque
Nota: Si la matriz deque está vacía poll()pollFirst()pollLast()regresa nullsi no se encuentra el elemento.
Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> animals= new ArrayDeque<>();
  5. animals.add("Dog");
  6. animals.add("Cat");
  7. animals.add("Cow");
  8. animals.add("Horse");
  9. System.out.println("ArrayDeque: " + animals);
  10. // Using poll()
  11. String element = animals.poll();
  12. System.out.println("Removed Element: " + element);
  13. System.out.println("New ArrayDeque: " + animals);
  14. // Using pollFirst()
  15. String firstElement = animals.pollFirst();
  16. System.out.println("Removed First Element: " + firstElement);
  17. // Using pollLast()
  18. String lastElement = animals.pollLast();
  19. System.out.println("Removed Last Element: " + lastElement);
  20. }
  21. }
Salida
ArrayDeque: [Perro, Gato, Vaca, Caballo]
Elemento eliminado: perro
Nueva ArrayDeque: [Cat, Cow, Horse]
Primer elemento eliminado: Gato
Último elemento eliminado: caballo
3. Eliminar Elemento: usando el método clear ()
Para eliminar todos los elementos de la matriz deque, usamos el clear()método Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> animals= new ArrayDeque<>();
  5. animals.add("Dog");
  6. animals.add("Cat");
  7. animals.add("Horse");
  8. System.out.println("ArrayDeque: " + animals);
  9. // Using clear()
  10. animals.clear();
  11. System.out.println("New ArrayDeque: " + animals);
  12. }
  13. }
Salida
ArrayDeque: [Perro, Gato, Caballo]
Nueva ArrayDeque: []

Iterando la matriz

  • iterator() - devuelve un iterador que se puede usar para iterar sobre la eliminación de matriz
  • descendingIterator() - devuelve un iterador que se puede utilizar para iterar sobre la eliminación de matriz en orden inverso
Para utilizar estos métodos, debemos importar el java.util.Iteratorpaquete. Por ejemplo,
  1. import java.util.ArrayDeque;
  2. import java.util.Iterator;
  3. class Main {
  4. public static void main(String[] args) {
  5. ArrayDeque<String> animals= new ArrayDeque<>();
  6. animals.add("Dog");
  7. animals.add("Cat");
  8. animals.add("Horse");
  9. System.out.print("ArrayDeque: ");
  10. // Using iterator()
  11. Iterator<String> iterate = animals.iterator();
  12. while(iterate.hasNext()) {
  13. System.out.print(iterate.next());
  14. System.out.print(", ");
  15. }
  16. System.out.print("\nArrayDeque in reverse order: ");
  17. // Using descendingIterator()
  18. Iterator<String> desIterate = animals.descendingIterator();
  19. while(desIterate.hasNext()) {
  20. System.out.print(desIterate.next());
  21. System.out.print(", ");
  22. }
  23. }
  24. }
Salida
ArrayDeque: [Perro, Gato, Caballo]
ArrayDeque en orden inverso: [Caballo, Gato, Perro]

Otros metodos

MétodosDescripciones
element()Devuelve un elemento del encabezado de la matriz deque.
contains(element)Busca en la matriz de deque el elemento especificado. Si se encuentra el elemento, devuelve verdadero, si no devuelve falso.
size()Devuelve la longitud de la matriz deque.
toArray()Convierte la deque de matriz en matriz y la devuelve.
clone()Crea una copia de la matriz de deque y la devuelve.

ArrayDeque como una pila

Para implementar una pila LIFO (Último en entrar, primero en salir) en Java, se recomienda usar un deque sobre la clase Stack . La ArrayDequeclase es probable que sea más rápido que el Stackde clase.
ArrayDeque proporciona los siguientes métodos que se pueden usar para implementar una pila.
  • push() - agrega un elemento a la parte superior de la pila
  • peek() - devuelve un elemento desde la parte superior de la pila
  • pop() - devuelve y elimina un elemento de la parte superior de la pila
Por ejemplo,
  1. import java.util.ArrayDeque;
  2. class Main {
  3. public static void main(String[] args) {
  4. ArrayDeque<String> stack = new ArrayDeque<>();
  5. // Add elements to stack
  6. stack.push("Dog");
  7. stack.push("Cat");
  8. stack.push("Horse");
  9. System.out.println("Stack: " + stack);
  10. // Access element from top of stack
  11. String element = stack.peek();
  12. System.out.println("Accessed Element: " + element);
  13. // Remove elements from top of stack
  14. String remElement = stack.pop();
  15. System.out.println("Removed element: " + remElement);
  16. }
  17. }
Salida
Pila: [Caballo, Gato, Perro]
Elemento al que se accede: caballo
Elemento eliminado: caballo

ArrayDeque vs. Clase LinkedList

Ambos ArrayDequeJava LinkedList implementan la Dequeinterfaz. Sin embargo, existen algunas diferencias entre ellos.
  • LinkedListadmite nullelementos, mientras ArrayDequeque no.
  • Cada nodo en una lista vinculada incluye enlaces a otros nodos. Es por eso que LinkedListrequiere más almacenamiento que ArrayDeque.
  • Si está implementando la cola o la estructura de datos de deque, ArrayDequees probable que una sea más rápida que a LinkedList.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas