Create a new class that extends Aisle. Your new class should override
the addCustomer method so that every time a new customer
is added, the entire list of customers is sorted. This way, the
customer with the fewest items is always moved to the front. This type of aisle will model the effect of friendly customers
that let other customers "cut" if they have fewer items.
You should use the Collections.sort method to sort
your ArrayList. Since this method only works when the items in the
list implement the Comparable interface, you will also
need to modify the Customer class to
implement Comparable.
Comparable is a generic interface. This means you can use it like this:
public class MyClass implements Comparable<MyClass>or like this:
public class MyClass implements ComparableIn the former class your compareTo method must take an argument of type
MyClass in the latter it must take an argument of type Object
SortedAisle class modify
MartSimulation so that it uses SortedAisles instead
of LimitedAisles, and confirm that your code works
correctly.
It is unfortunate that the current version of the simulation requires
the code to be modified and recompiled when we want to change the
aisle type used in the simulation. Modify the
file MartDriver and MartSimulation classes
to allow the user to select any of the three aisle types at run time.
Execute the simulation several times to see the effect of changing aisle
types.
Submit all of your .java files through Canvas.