Mega Code Archive

 
Categories / Java Book / 005 Collection
 

0349 ArrayDeque Class

ArrayDeque class extends AbstractCollection and implements the Deque interface. ArrayDeque creates a dynamic array and has no capacity restrictions. ArrayDeque is a generic class that has this declaration: class ArrayDeque<E> E specifies the type of objects stored in the collection. ArrayDeque defines the following constructors: ArrayDeque( ) builds an empty deque. starting capacity is 16. ArrayDeque(int size) builds a deque that has the specified initial capacity. ArrayDeque(Collection<? extends E> c) creates a deque that is initialized with the elements of the collection passed in c. The following program demonstrates ArrayDeque by using it to create a stack: import java.util.ArrayDeque; public class Main { public static void main(String args[]) { ArrayDeque<String> adq = new ArrayDeque<String>(); adq.push("A"); adq.push("B"); adq.push("D"); adq.push("E"); adq.push("F"); while (adq.peek() != null){ System.out.println(adq.pop() + " "); } } } The following code uses an array deque as a stack import java.util.ArrayDeque; import java.util.Deque; public class Main { public static void main(String[] args) { Deque<String> stack = new ArrayDeque<String>(); String[] weekdays = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; for (String weekday : weekdays){ stack.push(weekday); } while (stack.peek() != null){ System.out.println(stack.pop()); } } } Saturday Friday Thursday Wednesday Tuesday Monday Sunday import java.util.ArrayDeque; import java.util.Deque; public class Main { public static void main(String[] args) { MyDequeue stack = new MyDequeue(); for (int i = 0; i < 5; i++) { stack.push(i); } System.out.println("After pushing 5 elements: " + stack); int m = stack.pop(); System.out.println("Popped element = " + m); System.out.println("After popping 1 element : " + stack); int n = stack.peek(); System.out.println("Peeked element = " + n); System.out.println("After peeking 1 element : " + stack); } } class MyDequeue { private Deque<Integer> data = new ArrayDeque<Integer>(); public void push(Integer element) { data.addFirst(element); } public Integer pop() { return data.removeFirst(); } public Integer peek() { return data.peekFirst(); } public String toString() { return data.toString(); } }