/////// File OrderedDates.java /////// public class OrderedDates extends OrderedSeq { // public section public OrderedDates() { this(256); } // default constructor public OrderedDates(int m) // constructor, capacity = m { MAX = m; dates = new Date[m]; } public int capacity() { return MAX; } public int length() { return(len); } // current length of seq public Date get(int i) // returns ith date { if ( i >= len) return(null); if ( ! sorted() ) sort(); return(this.dates[i]); } public void remove(int i) // remove element i { if ( i < len ) { for ( int j=i ; j < len ; j++ ) dates[j] = dates[j+1]; len--; } } // protected section protected boolean append(Object date) // add to end, false failed { if ( len < MAX ) { dates[len++] = (Date) date; return(true); } return(false); // array full } protected void swap(int i, int j) // interchange elements { Date tmp = dates[i]; dates[i] = dates[j]; dates[j] = tmp; } protected int cmp(int i, int j) // compare elements { return dates[i].cmp(dates[j]); } protected int cmp(Object date, int j) // compare key to element { Date tmp = (Date) date; return tmp.cmp(dates[j]); } // private section private Date[] dates; // array private int len = 0; // total no. of dates private int MAX; }