如何在Java中创建向量数组?

如何在Java中创建向量数组?,java,arrays,vector,Java,Arrays,Vector,所以,我想要一个Java中整数向量的数组 如果我把 Vector<Integer>[] matrix; matrix = new Vector<Integer>[100]; 相反?(发出警告) 或者我不应该使用向量数组,而是使用向量的向量 注意:我不想要一个向量,我想要一个向量[]来创建一个整数矩阵,而不使用Integer[]。Vector Vector=new Vector(); Vector<Integer> vector = new Vector<

所以,我想要一个Java中整数向量的数组

如果我把

Vector<Integer>[] matrix;
matrix = new Vector<Integer>[100];
相反?(发出警告)

或者我不应该使用向量数组,而是使用向量的向量

注意:我不想要一个向量,我想要一个向量[]来创建一个整数矩阵,而不使用Integer[]。
Vector Vector=new Vector();
Vector<Integer> vector = new Vector<Integer>();
如果您尝试这样做:

Vector<Integer> vector = new Vector<Integer>();
Vector<Integer>[] vectors = {vector};
Vector向量=新向量();
向量[]向量={Vector};
您将得到一个编译错误:

无法创建的泛型数组 载体

但是,如果不指定泛型类型,java将允许它,但会发出警告:

Vector<Integer> vector = new Vector<Integer>();
Vector[] vectors = {vector};
Vector向量=新向量();
向量[]向量={Vector};

Java根本没有任何方法来创建参数化类型的数组而不获取或抑制警告。因此,你能得到的最好结果是:

@SuppressWarnings("unchecked")
Vector<Integer>[] anArray = (Vector<Integer>[]) new Vector<Integer>[100];
@SuppressWarnings(“未选中”)
向量[]数组=(向量[])新向量[100];
如果完全避免使用数组,则可以绕过此问题。即:

Vector<Vector<Integer>> list = new Vector<Vector<Integer>>(100);
向量列表=新向量(100);
或使用集合类型:

List<List<Integer>> list = new ArrayList<List<Integer>>(100);
List List=newarraylist(100);

向量由数组支持,并将增大或缩小到足以容纳插入的元素的大小。因此,可以预先分配向量,但不必在创建时实际指定大小

// preallocated vector, which can hold 100 elements
Vector<Integer> integers = new Vector(100);
现在,如果你想要一个“向量数组”,那么你可以

// array of vectors
Vector[] vectors = new Vector[100];

要创建泛型数组,必须创建非泛型并强制转换它。您还必须初始化数组中的所有元素,否则它们将为空:(


为避免类型转换,请考虑此实现:

    Vector<Integer>[] intVectorArray;
    Vector[] temp = new Vector[desiredSize];
    intVectorArray = temp;
    for(int i = 0;i<intVectorArray.length;i++){
        hashArray[i] = new Vector<Integer>();
    }
Vector[]intVectorArray;
向量[]温度=新向量[desiredSize];
intVectorArray=温度;

对于(int i=0;我是唯一一个努力遵循这一思路的人?你真的应该使用而不是
向量
。有什么特别的原因你不使用数组数组,或者不使用v̶e̶c̶t̶o̶r̶o̶o̶f̶v̶e̶c̶t̶o̶r̶s̶s̶列表吗?数组列表可能是唯一的重复界面创建单个向量,而不是向量数组。这似乎是他想要的。我仍然不明白他所说的“向量数组”的真正含义。我需要向量数组,而不仅仅是向量。它类似于整数[][],但内部数组是向量而不是数组,因为它需要增加。我可以只使用向量的向量,但外部数组不会增加,所以它可以只是一个数组。是的,最后一个可行,但我相信向量>更好。java中不允许使用泛型数组是错误的。参数化类型的数组是allowed是Java语言不可或缺的一部分。毕竟基于数组的集合类在内部使用它们(大部分是隐式的,但有时是显式的)。是的,我认为抑制警告或简单地使用vector of vector是唯一的方法。我知道答案已经有10年了,但第一个解决方案不再编译。
// allocate an array
Integer[] integers = new Integer[100];
// array of vectors
Vector[] vectors = new Vector[100];
Vector<Integer>[] anArray = (Vector<Integer>[]) new Vector[100];
for(int i = 0; i < anArray.length; i++)
   anArray[i] = new Vector<Integer>();
List<Integer>[] anArray = (List<Integer>[]) new List[100];
for(int i = 0; i < anArray.length; i++)
   anArray[i] = new ArrayList<Integer>();
TIntArrayList[] anArray = new TIntArrayList[100];
for(int i = 0; i < anArray.length; i++)
   anArray[i] = new TIntArrayList();
    Vector<Integer>[] intVectorArray;
    Vector[] temp = new Vector[desiredSize];
    intVectorArray = temp;
    for(int i = 0;i<intVectorArray.length;i++){
        hashArray[i] = new Vector<Integer>();
    }