Me has pillado de buenas y no voy a hacer honor a mi nick mandándote a leer.
Aquí te pego algo de código que tu puedes mejorar y ampliar.
Sería interesante hacer esta clase singleton y acceder siempre a la misma instancia. Así no te lias.
import java.util.ArrayList;
import java.util.Vector;
public class Contenedor {
private Vector[] contenedor;
private int index = 0;
// creamos el contenedor con numeroFilas filas
public Contenedor(int numeroFilas) {
contenedor = new Vector[numeroFilas];
}
// mete un nuevo vector en la matriz
public void putVector(Vector elemento){
contenedor[index] = elemento;
index++;
}
// guarda un elemento en la posición indice
public void putVector(Vector elemento, int contIndex){
contenedor[contIndex] = elemento;
}
// devuelve el último vector de la matriz
public Vector getVector(){
index--;
if(index < 0){
System.out.println("Mal, todavía no hemos metido ningún elemento en la matriz.");
return null;
}
return contenedor[index];
}
// devuelve el elemento que está en la posición indice
public Vector getVector(int contIndex){
return contenedor[contIndex];
}
// añade un ArrayList en la última posición del vector indice
public void appendList(ArrayList lista, int contIndex){
Vector elemento = contenedor[contIndex];
elemento.add(lista);
}
// añade un ArrayList en la posición vectorIndex del vector contIndex
public void appendList(ArrayList lista, int vectorIndex, int contIndex){
Vector elemento = contenedor[contIndex];
elemento.add(vectorIndex, lista);
}
// devuelve la última lista del vector contIndex
public ArrayList getList(int contIndex){
Vector elemento = this.getVector(contIndex);
if(elemento == null){
System.out.println("Mal ...");
return null;
}
return (ArrayList) elemento.get(elemento.size());
}
// devuelve la lista vectorIndex del vector contIndex
public ArrayList getList(int vectorIndex, int contIndex){
Vector elemento = this.getVector(contIndex);
if(elemento == null){
System.out.println("Mal ...");
return null;
}
return (ArrayList) elemento.get(vectorIndex);
}
}