如何在java中将Vector<double[]>
转换为double[][]
?
答案 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()
:
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。
干杯。基思。