Non, AFAIK il n'y a aucune classe comme ceci. Mais la mise en œuvre d'un devrait être assez 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;
}
}
Note: Le Typeparameter n'est pas utilisé en interne, parce qu'il n'y a pas une telle chose que new T[][]
Permet de modifier Ajouté ADDX Méthode de démonstration
Correction des erreurs de compilation
"Je ne veux pas créer une ArrayList de ArrayList" Pourquoi? Cela correspondrait parfaitement à votre description. Est-ce parce que vous voulez utiliser des types primitifs? – Searles
Non. C'est parce que je veux créer des objets qui vont occuper plus d'une cellule, et chacun peut être vertical ou horizontal. Si nous considérons que ArrayList est vertical, j'aurais des problèmes avec les objets horizontalement, car ils utiliseront plusieurs positions de divers ArrayLists à la fois. –