我想创建一个整数(或任何类型)的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/

10-11 10:50