Please provide complete Java class code with main() function.
Extend the queue ADT to include the following operations:
last that will return the rear element of the queue (which shall not be deleted from the queue)
length that will return the number of elements on the queue.
enqueueN that will enqueue an array of N elements on the queue
dequeueN that will dequeue and return an array of N elements from the queue
Write an implementation for each operation and compute their time complexity in Big-O notation (no justification is needed).