class Queue { QueueItem first; QueueItem last; void add(Thing t) { QueueItem newItem = new QueueItem(t); if (first == null) { first = newItem; last = newItem; } else { last.next = newItem; last = newItem; } } // end of add() Thing get() { if (first == null) return null; else { QueueItem firstItem = first; first = first.next; return firstItem.myThing; } } // end of get() void print() { if (first == null) System.out.println("Queue is empty"); else { QueueItem item = first; while (item != null) { System.out.println(item.myThing.key + ":" + item.myThing.value); item = item.next; } } } // end of print() } // end of class Queue class QueueItem { Thing myThing; QueueItem next; QueueItem(Thing t) { myThing = t; } } // end of class QueueItem