Java Deque

W tym samouczku nauczymy się o interfejsie Deque, jak go używać i jego metodach.

DequeInterfejs zbiorach ramach Java zapewnia funkcjonalność kolejka dwukierunkowa. Rozszerza Queueinterfejs.

Działanie Deque

W regularnej kolejce elementy są dodawane od tyłu i usuwane z przodu. Jednak w deque możemy wstawiać i usuwać elementy zarówno z przodu, jak iz tyłu .

Klasy implementujące Deque

Aby skorzystać z funkcjonalności Dequeinterfejsu, musimy skorzystać z klas, które go implementują:

  • ArrayDeque
  • Połączona lista

Jak używać Deque?

W Javie musimy zaimportować java.util.Dequepakiet do użycia Deque.

 // Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList(); 

Tutaj stworzyliśmy obiekty animal1 i animal2 z klas ArrayDeque i LinkedList. Obiekty te mogą korzystać z funkcjonalności Dequeinterfejsu.

Metody Deque

Ponieważ Dequerozszerza Queueinterfejs, dziedziczy on wszystkie metody interfejsu Queue.

Oprócz metod dostępnych w Queueinterfejsie, Dequeinterfejs zawiera również następujące metody:

  • addFirst () - dodaje określony element na początku deque. Zgłasza wyjątek, jeśli deque jest pełny.
  • addLast () - dodaje określony element na końcu deque. Zgłasza wyjątek, jeśli deque jest pełny.
  • offerFirst () - dodaje określony element na początku deque. Zwraca, falsejeśli deque jest pełny.
  • offerLast () - dodaje określony element na końcu deque. Zwraca, falsejeśli deque jest pełny.
  • getFirst () - zwraca pierwszy element deque. Zgłasza wyjątek, jeśli deque jest pusty.
  • getLast () - zwraca ostatni element deque. Zgłasza wyjątek, jeśli deque jest pusty.
  • peekFirst () - zwraca pierwszy element deque. Zwraca, nulljeśli deque jest pusty.
  • peekLast () - zwraca ostatni element deque. Zwraca, nulljeśli deque jest pusty.
  • removeFirst () - zwraca i usuwa pierwszy element deque. Zgłasza wyjątek, jeśli deque jest pusty.
  • removeLast () - zwraca i usuwa ostatni element deque. Zgłasza wyjątek, jeśli deque jest pusty.
  • pollFirst () - zwraca i usuwa pierwszy element deque. Zwraca, nulljeśli deque jest pusty.
  • pollLast () - zwraca i usuwa ostatni element deque. Zwraca, nulljeśli deque jest pusty.

Deque as Stack Data Structure

StackKlasa Java Collectionsram zapewnia realizację stosie.

Jednak zaleca się używanie Dequejako stosu zamiast klasy Stack. Dzieje się tak, ponieważ metody Stacksą zsynchronizowane.

Oto metody Dequeimplementacji stosu, które zapewnia interfejs:

  • push() - dodaje element na początku deque
  • pop() - usuwa element z początku deque
  • peek() - zwraca element z początku deque

Implementacja Deque w klasie ArrayDeque

 import java.util.Deque; import java.util.ArrayDeque; class Main ( public static void main(String() args) ( // Creating Deque using the ArrayDeque class Deque numbers = new ArrayDeque(); // add elements to the Deque numbers.offer(1); numbers.offerLast(2); numbers.offerFirst(3); System.out.println("Deque: " + numbers); // Access elements of the Deque int firstElement = numbers.peekFirst(); System.out.println("First Element: " + firstElement); int lastElement = numbers.peekLast(); System.out.println("Last Element: " + lastElement); // Remove elements from the Deque int removedNumber1 = numbers.pollFirst(); System.out.println("Removed First Element: " + removedNumber1); int removedNumber2 = numbers.pollLast(); System.out.println("Removed Last Element: " + removedNumber2); System.out.println("Updated Deque: " + numbers); ) ) 

Wynik

 Deque: (3, 1, 2) Pierwszy element: 3 Ostatni element: 2 Usunięty pierwszy element: 3 Usunięty Ostatni element: 2 Zaktualizowany Deque: (1) 

Aby dowiedzieć się więcej, odwiedź witrynę Java ArrayDeque.

Interesujące artykuły...