No, AFAIK no hay ninguna clase como esta. Pero la implementación de uno debería ser bastante fácil:
class BiDimensionalArray<T>{
Object[][] backupArray;
int lengthX;
int lengthY;
public BiDimensionalArray(int lengthX, int lengthY) {
backupArray = new Object[lengthX][lengthY];
this.lengthX = lengthX;
this.lengthY = lengthY;
}
public void set(int x, int y, T value){
backupArray[x][y] = value;
}
public T get(int x, int y){
return (T) backupArray[x][y];
}
public void addX(T[] valuesY) {
Object[][] newArray = new Object[lengthX+1][lengthY];
System.arraycopy(backupArray, 0, newArray, 0, lengthX);
newArray[lengthX]=valuesY;
backupArray = newArray;
lengthX = lengthX+1;
}
}
Nota: El Typeparameter no se usa internamente, porque no hay tal cosa como new T[][]
EDITS
Agregado ADDX Método para la demostración
Corrección de errores de compilación
"No quiero crear una ArrayList de ArrayList" ¿Por qué? En realidad se ajustaría perfectamente a tu descripción. ¿Es porque quieres usar tipos primitivos? – Searles
No. Es porque quiero crear objetos que ocupen más de una celda, y cada uno puede ser vertical u horizontalmente. Si consideramos que ArrayList es vertical, tendría problemas con los objetos horizontalmente, ya que usarán varias posiciones de varios ArrayLists a la vez. –