Java Implementations of some ADTs