Almacenar 400,000 registros... pues te recomendaría usar una base de datos y utilizar consultas paginadas para desplegar los registros.
Java tiene colecciones como
Map,
LIst y
Vector que te permiten iterar los elementos. Los
List y los
Vector básicamente funcionan igual, con la diferencia que Vector es un objeto sincronizado y por eso va mas lento, por eso prefiero utilizar
LIst.
Los Map es lo más cercano a una base de datos ya que se puede acceder al elemento que uno busca mediante su llave.
Si tienes que manejar cuatrocientos mil registros registros y no cuentas con una base de datos entonces usar archivos como CSV es una alternativa muy viable, ya que puedes leerlo y buscar dentro de él el registro que estes buscando, auque ya eso requiere un poco de habilidades tuyas
.
Se que hay unos archivos especiales que permiten un acceso indexado (No recuerdo como es que eran, debo buscar mi libro).
Saludos!!
;-)