This QA How does Java implement hash tables? describes that Hashtable is implemented via static array in Java (the underlying static array will be refined according to the total number of items).
Why doesn't Java implement Hashtable via dynamic array, such as ArrayList?
What are the tradeoffs?