Deque Interface

Deque stands for "double ended queue". Deque Interface extends Queue interface to provide a linear collection that supports element insertion and removal at both ends.

 

Important properties of Deque interface

  1. Deque interface supports capacity-restricted deques as well as those with no fixed size limit.

  2. Deque interface defines methods to access the elements at both ends of the deque.

  3. Methods are provided to insert, remove, and examine the element.

  4. Each of the methods exists in two forms:

    • one throws an exception if the operation fails,

      • addFirst(e), removeFirst(), getFirst(), addLast(e), removeLast(), getLast().

    • the other returns a special value like null or false 

      • offerFirst(e), pollFirst(), peekFirst(), offerLast(e), pollLast(), peekLast().

  5. Deque can be used as a queue (FIFO behaviour) or stack (LIFO behaviour)

    • Preferred over legacy stack

  6. This interface does not provide support for indexed access to elements.

  7. The null is used as a special return value by various methods to indicated that the deque is empty.

    • Even if the implementation allows null, it is advised not to use nulls

  8. Deque implementations generally inherit the identity-based versions of the equals and hashCode methods from class Object.

 

Important methods of Deque interface

  • addFirst(e), removeFirst(), getFirst(), addLast(e), removeLast(), getLast().

  • offerFirst(e), pollFirst(), peekFirst(), offerLast(e), pollLast(), peekLast().

  • add(E e), contains(Object o), element(), descendingIterator(), pop(), push(E e).

  • removeFirstOccurrence(Object o), removeLastOccurrence(Object o).

 

Important notes

  1. BlockingDeqeue interface that extends from the Deque interface and BlockingQueue interface, belongs to java concurrency package and will be discussed when we discuss about java concurrency.

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)