Видимо коллекции рассредоточены в потоках ( threads ) которые что - то удерживает в памяти.
Если Вы пользуетесь потоками ( thread ) непосредственно, то наверное надо вызывать "return" в методе run, чтобы они сигналили процесс, что их можно безопасно чистить, если же они в некоем контейнере, которым управляет некий объект по умолчанию ( pool ), то здесь все зависит от контейнера, есть хорошие, но бывают всякие :)