从Vector <double []>转换为double [] [] </double []>

时间:2011-04-25 10:05:46

标签: java

如何在java中将Vector<double[]>转换为double[][]

3 个答案:

答案 0 :(得分:3)

这样做:

double matrix[][] = new double[vector.size()][];
for (int i = 0; i < vector.size(); i++) {
    matrix[i] = vector.get(i);
}

请注意,这会引用与double[]中相同的Vector<double[]>数组。因此,对此的更改将反映在新的matrix[][]中。如果您不想这样做,则必须为每次迭代创建一个新的double[],并将旧数组中的值复制到新数组中。

答案 1 :(得分:3)

您可以按Vector.toArray()

将Vector转换为数组
double[][] array = vector.toArray(new double[0][]);

这可能比循环更快一些,因为Vector可以在其内部数组上使用System.arraycopy()

答案 2 :(得分:0)

穆罕默德,

WhiteFang是正确的......如果你正在寻找一个“开箱即用”的解决方案,那么看看Apache的Commons Collections(http://commons.apache.org/collections/)

我接触Java已有一年多的时间了,但如果我没记错的话,“commons”会为Vectors提供转换器......以及许多很多很多其他方便的工具包。

顺便说一句:如果你选择使用Vector,并且没有充分的理由不使用ArrayList,那么使用ArrayList ......它会稍快一些。除了它不是线程安全的;而所有的Vector方法都是同步的。这里的解释:http://skeletoncoder.blogspot.com/2006/09/java-tutorials-arraylist-or-vector.html

干杯。基思。