我想创建一个整数(或任何类型)的XY数组,但是我想使用类似于ArrayList类的“添加”,“删除”,“包含”,“indexOf”之类的方法。
是否有具有这些功能的现有类(class)?
PS:我不想创建ArrayList的ArrayList
最佳答案
不,AFAIK没有这样的类(class)。但是实现一个应该很容易:
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;
}
}
注意:Typeparameter不在内部使用,因为没有诸如
new T[][]
之类的东西编辑
添加了addX方法进行演示
修复编译错误
关于Java:具有类似ArrayList的方法/功能的二维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2542250/