Also ich habe bei größeren Datenimporten sehr gute Erfahrungen mit TreeMap und Vector/ArrayList gemacht. Größere bedeutet mehrere Millionen Datenzeilen, die als Objekte verpackt in einer der obigen solchen Strukturen lagen.
Bei der Bearbeitung habe ich meistens darauf geachtet, wenn möglich, das fertig behandelte Element aus der Liste zu entfernen. Meistens war das eine Kombi von get(0)/remove(0) n-Mal. Gepaart mit einer Empfehlung an die VM eine GC zu machen, beispielsweise nach tausend Objekten. Das lief bisher immer gut.
Hauptspeicherprobleme traten bei großen Mengen natürlich auch auf, doch die Schalter Xmx und Xmx sollten helfen (Windowsmaschinen verkraften hier so um 1GB, server-Option der VM setzen). Bei einem früheren besonders heftigen Einmalimport reichte dieses GB auch nicht mehr aus. Da ich als Arbeitsrechner FreeBSD hatte, mit nem Diablo-Java (hat keine Speicherbeschränkung bei Xmx, Xms) und genügend RAM, konnte ich den Speicher auf knapp 2,4GB anheben --> Import kein Problem
Suchoperationen in Listen sind bei deratigen Mengen natürlich anstrengend, aber es ja Maps