CIT 594, Notes on the Animals Assignment
If you have wondered about the
ClassNotFoundException that could
occur when you try to read in a binary tree from a file, it's very simple: You
can only read in objects if you have a class that describes those objects.
For example, if you try to read in an object from your
file, and it turns out to be an object of type
Employee, you would
get this exception. (Unless, that is, you actually have an
class in your Animals program!)
ClassNotFoundException can also occur if you write a binary
animals.dat, change the definition of your binary tree
class, and then try to read in the old binary tree using the new definition.
Here's a problem you may not have thought of. Suppose that each time you add
an animal to the binary tree, you also add it to your hash table. Then you write
out the binary tree to
animals.dat and quit the program. The next
time you start the program and read in
animals.dat, you no longer
have the hash table, and your program doesn't know which animals are already
in the binary tree. What do you do about this?
There are two obvious solutions:
animals.dat, write out your hash table as well. When you read in the binary tree, read in your hash table as well. (Note that nothing prevents you from putting two different kinds of objects on the same file.)
Of these two solutions, I think the second is probably easier (and more efficient as well), but it's up to you.