ArrayDeque

it is resizable array implelemtatiopn of the Deque interface that have no calpacity restrictions. They can grow as neccessary to occupy elements. It is not thread safe so can not be accessed by multiple threads.It does not allows null element. this classes claimed to be faster then Stack and LinkedList.
 It has following constructors
 ArrayDeque()
          creates an empty array deque having default capacity to hold 16 elements.
ArrayDeque(Collection c)
          creates a deque containing the elements of the specified collection, in the order they are returned by the collection's iterator.
ArrayDeque(int numElements)
          creates an empty array deque with an initial capacity sufficient to hold the specified number of elements.

 Methods are same as before.

Following program is an example of priority queue;

package collection.demos;



import java.util.ArrayDeque;



public class ArrayDequeDemo {



    public static void main(String[] args) {

        ArrayDeque<String> jobs = new ArrayDeque<String>();

        System.out.println("\nQueue opearations");

        jobs.add("job-1");

        jobs.add("job-2");

        jobs.add("job-3");

        jobs.add("job-4");

        jobs.add("job-5");

        System.out.println("Queue : "+jobs);

        System.out.println("Element at head "+jobs.element());

        System.out.println("Removed element "+jobs.poll());

        System.out.println("Queue : "+jobs);

        jobs.add("job-1");

        System.out.println("Queue : "+jobs);



        System.out.println("\nDeque opearations");

        jobs.clear();

        //Adding the specified element at the front(head) of this deque(we can use offerFirst(e) also)

        jobs.addFirst("Job-1");

        System.out.println("Queue : "+jobs);

        jobs.addFirst("Job-2");

        System.out.println("Queue : "+jobs);

        //Adding the specified element at the end(tail) of this deque(we can use offerLast(e) also)

        jobs.addLast("Job-3");

        System.out.println("Queue : "+jobs);

        jobs.addLast("Job-4");

        System.out.println("Queue : "+jobs);

        //Retrieves and removes the first element of this deque.

        System.out.println("removeFirst : "+jobs.removeFirst());

        System.out.println("Queue : "+jobs);

        //Retrieves and removes the last element of this deque.

        System.out.println("removeLast : "+jobs.removeLast());

        System.out.println("Queue : "+jobs);

        //Retrieves, but does not remove, the first element of this deque.

        System.out.println("getFirst : "+jobs.getFirst());

        System.out.println("getLast : "+jobs.getLast());



        System.out.println("\nStack opearations");

        jobs.clear();

        System.out.println("Initial Queue : "+jobs);

        jobs.push("Job-1");

        jobs.push("Job-2");

        jobs.push("Job-3");

         System.out.println("Queue : "+jobs);

        System.out.println("peek "+jobs.peek());

        System.out.println("pop "+jobs.pop());

        System.out.println("Queue after pop : "+jobs);

        System.out.println("pop "+jobs.pop());

        System.out.println("Queue after pop : "+jobs);

    }

}

No comments:

Popular Posts