It is possible to enhance the efficiency of find operations on a list by using binary search. However, this requires restricting access to the location of data in the structure in order to maintain a sorted order.
The file SortedArray.java
contains the outline of an array based implementation of a sorted
list. Notice that the generic type for the class extends
Comparable. This means that only classes that implements Comparable
can be used as the generic type for the SortedList class. This is
necessary because it is not possible to sort objects unless they
can be compared. There is also an
ArrayList.java instance variable that
stores the objects in the list in ascending order. The
constructors and the toString
methods are already
completed, however, you must complete each of the following
methods:
binarySearch
method should return the index
of the first occurrence of the specified object. If the object
is not in the list, it should return where it would be added to
the list. You can use the constructor that takes an array list
of objects to test this method. Test thoroughly before
proceeding. The following three methods should all use
the binarySearch
method.add
method should add the specified object
to the sorted list, such that the list maintains its ascending
order. If the object is null, it should throw an exception.
Test thoroughly before proceeding.get
method should return the first object
in the sorted list that is equivalent (according to the
compareTo
method) to the specified object. If
there is no equivalent object in the list, it should return
null. Thoroughly test before proceeding.iterator
method should return a new
SortedListIterator that begins iterating over the sorted list at
the first occurrence of an object equivalent to or greater than
the specified object. Test thoroughly before submitting.Submit a zip file of your code on the course Inquire site that uses your last names as the file name.