No, AFAIK non esiste una classe come questa. Ma Implementazione di uno dovrebbe essere abbastanza facile:
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: La Typeparameter non viene utilizzato internamente, perché non v'è alcuna cosa come new T[][]
EDITS
Aggiunto Metodo addX per la dimostrazione
Errori di compilazione corretti
"Non voglio creare un ArrayList di ArrayList" Perché? In realtà corrisponderebbe perfettamente alla tua descrizione. È perché vuoi usare i tipi primitivi? – Searles
No. È perché voglio creare oggetti che occuperanno più di una cella, e ognuno può essere verticale o orizzontale. Se consideriamo che ArrayList è verticale, avrei problemi con gli oggetti in orizzontale, dato che useranno varie posizioni di vari ArrayList contemporaneamente. –