import java.util.LinkedList; import java.util.Iterator; import java.util.ListIterator; public class Drawer { private int myMaxID; private LinkedList myStudents; Drawer(int max) { myMaxID = max; myStudents = new LinkedList(); } public int getMaxID() { return myMaxID; } public void addStudent(Student s) { if (myStudents.size() == 0){ myStudents.addFirst(s); } else { Student first = (Student) myStudents.getFirst(); Student last = (Student) myStudents.getLast(); if (s.getID() < first.getID()){ myStudents.addFirst(s); } else if (s.getID() > last.getID()){ myStudents.addLast(s); } else { ListIterator iter = myStudents.listIterator(); ListIterator nextIter = myStudents.listIterator(); iter.next(); nextIter.next(); while (nextIter.hasNext()){ Student s2 = (Student) nextIter.next(); if (s.getID() < s2.getID()){ iter.add(s); break; } iter.next(); } } } } public String toString() { String result=""; Iterator it = iterator(); while (it.hasNext()){ result += " " +it.next(); } return "max = "+myMaxID+" size = "+myStudents.size() + " "+result; } public Iterator iterator() { return myStudents.iterator(); } }