Không, AFAIK không có bất kỳ lớp nào như thế này. Nhưng Thực hiện một nên được khá dễ dàng:
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;
}
}
Lưu ý: Các Typeparameter không được sử dụng trong nội bộ, vì không có những điều như new T[][]
CÁC CHỈNH SỬA
Added addX Phương pháp cho cuộc biểu tình
Sửa lỗi biên dịch
"Tôi không muốn tạo một ArrayList của ArrayList" Tại sao? Nó sẽ thực sự phù hợp với mô tả của bạn một cách hoàn hảo. Có phải vì bạn muốn sử dụng các kiểu nguyên thủy? – Searles
Không. Đó là vì tôi muốn tạo các đối tượng sẽ chiếm nhiều hơn một ô, và mỗi ô có thể theo chiều dọc hoặc chiều ngang. Nếu chúng ta xem xét rằng ArrayList là dọc, tôi sẽ có vấn đề với các đối tượng theo chiều ngang, vì chúng sẽ sử dụng các vị trí khác nhau của các biến ArrayLists cùng một lúc. –