A Java 6 nyelvi elemekben nem hozott akkora ugrást, mint a Java 5, de jelentősen bővült a felhasználható eszközök száma, sok új osztály került a java.util csomagba, ilyen a Deque osztály is, amelynek a neve "Double Ended QUEue" kifejezésből származik. Ez azt jelenti, hogy a Deque példányt használhatjuk queue és stack üzemmódban is. Csapjunk a közepébe, és nézzük az alábbi programot:
import java.util.ArrayDeque; import java.util.Deque; public class DequeTest { public static void main(String [] args) { Deque deque = new ArrayDeque(); deque.add("Első"); deque.add("Második"); deque.add("Középső"); deque.add("Utolsó előtti"); deque.add("Utolsó"); System.out.println(deque.toString()); /** * Kiolvassuk az elemet, de nem vesszük ki */ System.out.println(deque.peekFirst()); System.out.println(deque.peekLast()); /** * Kiolvassuk az elemet, és el is távolítjuk */ System.out.println(deque.pollFirst()); System.out.println(deque.pollLast()); /** * Visszatesszük a kivett elemeket */ deque.push("Első"); deque.add("Utolsó"); System.out.println(deque.toString()); } }
Ahogy a programból látszik: egyszerűen hozzá tudunk adni elemeket a listához, amelynek elejéről és végéről is közel azonos módon tudunk elemeket kiolvasni, kivenni illetve beletenni. A program kimenete:
[Első, Második, Középső, Utolsó előtti, Utolsó] Első Utolsó Első Utolsó [Első, Második, Középső, Utolsó előtti, Utolsó]
Az osztály több metódussal is rendelkezik a fentieken kívül, amelyek alapvetően rövidebb nevet jelentenek a gyakran használt műveletekhez, másrészt pedig a metódusok egy csoportjánál NoSuchElementException váltódik ki, ha üres a lista.