//GenericArrayListQueue import java.util.ArrayList; public class GenericArrayListQueue<T> { private ArrayList<T> queueList; public GenericArrayListQueue() { queueList = new ArrayList<>(); } public void enqueue(T value) { queueList.add(value); } public T dequeue() { if (isEmpty()) { System.out.println("Queue is empty."); return null; } else { return queueList.remove(0); } } public T peek() { if (isEmpty()) { System.out.println("Queue is empty."); return null; } else { return queueList.get(0); } } public boolean isEmpty() { return queueList.isEmpty(); } public int size() { return queueList.size(); } } //Main public class Main { public static void main(String[] args) { // Queue for Integers GenericArrayListQueue<Integer> intQueue = new GenericArrayListQueue<>(); intQueue.enqueue(1); intQueue.enqueue(2); System.out.println(intQueue.dequeue()); // Output: 1 System.out.println(intQueue.peek()); // Output: 2 // Queue for Doubles GenericArrayListQueue<Double> doubleQueue = new GenericArrayListQueue<>(); doubleQueue.enqueue(1.1); doubleQueue.enqueue(2.2); System.out.println(doubleQueue.dequeue()); // Output: 1.1 System.out.println(doubleQueue.peek()); // Output: 2.2 // Queue for Strings GenericArrayListQueue<String> stringQueue = new GenericArrayListQueue<>(); stringQueue.enqueue("Hello"); stringQueue.enqueue("World"); System.out.println(stringQueue.dequeue()); // Output: Hello System.out.println(stringQueue.peek()); // Output: World } }