Идея в том, что clear()
вызывается только тогда, когда вы хотите повторно использовать HashMap
. Повторное использование объекта следует выполнять только по той же причине, по которой он использовался ранее, поэтому есть вероятность, что у вас будет примерно одинаковое количество записей. Чтобы избежать бесполезного сжатия и изменения размера Map
, емкость сохраняется на том же уровне, когда вызывается clear()
.
Если все, что вы хотите сделать, это отбросить данные в Map
, то вам не нужно (и фактически не следует) вызывать clear()
для него, а просто очистить все ссылки на сам Map
в в каком случае это будет мусор в конечном итоге.