This is an implementation of an automatic, lazily expanding hash table based on Split-Ordered-Lists. It requires no re-hashing or re-bucketing to expand. It does require the use of a good hash function for your data domain. There is more information and examples in the class comment of the main class, and a reference to the original ACM paper describing the algorithm.