class OrderedList extends ArrayList> { public OrderedList () { super(); } // TQueue public synchronized void orderedInsert (Sortable s) { int i; for (i = 0; i < size(); i++) if (s.compareTo((E)get(i)) < 0) { add(i, s); break; } // if if (i == size()) add(s); return; } // insert public synchronized Sortable getElementIfPreviousTo (int orderNumber) { if (size() != 0 && get(0).getOrderNumber() <= orderNumber) return remove(0); else return null; } // getElementIfPreviousTo } // OrderedList interface Sortable extends Comparable { public int getOrderNumber (); } // Sortable