A flexible hash table ADT in Java