Implementations of various data structures in Java