todo el tema trata de estas preguntas que hacen, denle una leida.....
primero se crean una estructura de datos dinamica, la que quieran, vector, arraylis, linkedlist, hashtable, hasmap, etc...
como la crean? ponen el tipo, entre <tipoDeDatoqueguardara> y ponen el nombre, y luego lo instancian igual... ejem:
Vector<Alumnos> miVector = new Vector<Alumnos>();
Donde Alumnos puede remplazarse con cualquier objeto, o nombre de clase de la cual se haga un objeto.... entonces para agregar hago esto:
miVector.add(new Alumno("Pedrito"));
como ven le agrego un alumno que alli mismo estoy creando, en su caso me imagino que no los van a crear si no pasarlos por parametro..
con cualquier estructura que elijan es igual, solo con el hasmap y el hastable se usa el metodo .put() en ves del .add(), ademas hay una variacion de funcionalidad entre los hash y los arrays, pero bueno investigen...