// Queue.java: a queue implementation based on linked lists public class Queue { private java.util.LinkedList items = new java.util.LinkedList<>(); public void add(E newItem) { items.add(newItem); } public E remove() { return items.remove(0); } public boolean isEmpty() { return items.isEmpty(); } public static void main(String[] args) { Queue nums = new Queue<>(); if ( !nums.isEmpty() ) System.err.println("Error: initial queue not empty."); for(int i = 0; i < 20; ++i) nums.add(i); if ( nums.isEmpty() ) System.err.println("Error: queue still empty."); for(int i = 0; i < 20; ++i) if ( nums.remove() != i ) System.err.println("Error: remove of " + i + " out of order."); if ( !nums.isEmpty() ) System.err.println("Error: final queue not empty."); System.out.println("All tests completed."); } }