Java - 泛型类型的向量的多维数组

Joh*_*ohn 2 java

想象一下,如果你愿意的话,用1x1x1砖块制成的10x10x10立方体.每个砖必须可以通过x,y,z坐标访问.对于每块砖,我还需要存储一个拥有该"砖块"的人名单.

由于效率是绝对必要的,我想出了以下想法 - 一个3d矢量数组.注意 - 我创建了一个存储名称和其他信息的类(称为人)

//declaration
    protected Vector<person>[][][] position;
Run Code Online (Sandbox Code Playgroud)

我想我必须将内存分配给指针位置.我试过这个

position = new Vector<person>[10][10][10]; 
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误'无法创建一个通用的Vector数组'我只熟悉C++和Java对我来说是新的.我理解java不喜欢用泛型类型声明数组?有谁知道如何解决这个问题?

干杯

Ed.*_*d.C 5

没有必要复杂化那么多东西!你知道数组的大小(10:10:10),所以没有必要为砖块找到矢量或其他东西.尝试使用对象数组:

Class Brick {
 public Brick(int x, int y, int z){

   this.x=x;
   this.y=y;
   this.z=z;

   owners = new ArrayList <String> ();
 }

 List<String> owners;

 int x, y, z;  //every brick "knows" its position - you might not need it

} 

创建数组的代码:

Public Class Main {
  .....

 Brick Cube[][][] = new Brick[10][10][10];
 for (int x=0; x < 10; x++)
   for(int y=0; y < 10; y++)
     for(int z=0; z < 10; z++)
     {
       Cube[x][y][z] = new Brick(x, y, z);
     }

//adding an owner to a brick:
 Cube[0][0][0].owners.add("Owner");
.....
}

记住OOP - 它让事情变得更容易!

TODO:添加getter/setter