Create
a new class called
Gerbil
with an
int
gerbilNumber
that’s
initialized in the constructor (similar to the
Mouse
example
in this chapter). Give it a method called
hop( )
that prints out which gerbil number this is and that it’s hopping. Create
a
Vector
and add a bunch of
Gerbil
objects to the
Vector.
Now use the
elementAt( )
method to move through the
Vector
and call
hop( )
for each
Gerbil.
Modify
Exercise 1 so you use an
Enumeration
to move through the
Vector
while calling
hop( ).
In
AssocArray.java,
change the example so it uses a
Hashtable
instead of an
AssocArray.
Take
the
Gerbil
class in Exercise 1 and put it into a
Hashtable
instead, associating the name of the
Gerbil
as a
String
(the key) for each
Gerbil
(the
value) you put in the table. Get an
Enumeration
for the
keys( )
and use it to move through the
Hashtable,
looking up the
Gerbil
for each key and printing out the key and telling the
gerbil
to
hop( ).
Change
Exercise 1 in Chapter 7 to use a
Vector
to hold the
Rodents
and an
Enumeration
to move through the sequence of
Rodents.
Remember that a
Vector
holds only
Objects
so you must use a cast (i.e.: RTTI) when accessing individual
Rodents.
(Intermediate)
In Chapter 7, locate the
GreenhouseControls.java
example, which consists of three files. In
Controller.java,
the class
EventSet
is just a collection. Change the code to use a
Stack
instead of an
EventSet.
This will require more than just replacing
EventSet
with
Stack;
you’ll also need to use an
Enumeration
to cycle through the set of events. You’ll probably find it easier if at
times you treat the collection as a
Stack
and at other times as a
Vector.
(Challenging).
Find the source code for
Vector
in the Java source code library that comes with all Java distributions. Copy
this code and make a special version called
intVector
that holds only
ints.
Consider what it would take to make a special version of
Vector
for all the primitive types. Now consider what happens if you want to make a
linked list class that works with all the primitive types. If parameterized
types are ever implemented in Java, they will provide a way to do this work for
you automatically (as well as many other benefits).